NutzCN Logo
精华 MethodInterceptor可以脱离nutz项目使用么?
发布于 3008天前 作者 qq_16dd5808 3476 次浏览 复制 上一个帖子 下一个帖子
标签: jedis redis
http://nutzbook.wendal.net/redis_basic/redis_aop.html

看了上面那篇文章,虽然没看懂,单觉得不用关闭jedis是挺方便的,不知道能否告知一下原理?
我们在使用完jedis后,都需要执行

jedis.close();

但是,这篇文章中,并没有看到close的方法调用,怎么关闭的链接?

6 回复

jdk7的语法

try (Jedis jedis = jedisPool.getResource()) {
     jedis.set("name", "nutz.cn");
}

@wendal 这个倒是理解了,主要就是没有看到jedis.close()调用,就不知道TL.remove();的时候,就能自动调用?资源的回收怎么个流程,没有搞懂这部分。

@qq_16dd5808 try 后面的括号中的语句所产生的资源,在try块结束时自动close

来自炫酷的 NutzCN

@wendal 我去找找相关资料学习一下去。
我目前都是这样用的

Jedis jedis = jedisPool.getResource();
        try {
            jedis.xxx();
        } catch (Throwable throwable) {
            throw Lang.wrapThrow(throwable);
        } finally {
            jedis.close();
        }

难道说

try (Jedis jedis = jedisPool.getResource()) {
     jedis.xxx()
}finally{}

这样就可以了?不用调用close()方法了么?finally里面什么都不写行么?

@qq_16dd5808 是的,不需要

来自炫酷的 NutzCN

找到了,

http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

新特性,真是厉害。

添加回复
请先登陆
回到顶部