代码拉取完成,页面将自动刷新
如果在Cotroller的method上添加@Before(Tx.class)的话,那么这个事务是控制到这个method开始到结束。我看了Tx.java 这个文件中,interpret方法最后调用conn.close(); 请问,既然使用连接池来管理连接,这里需要关闭连接吗?如果在这个关闭连接,那么连接池还起到连接池应有的作用吗!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
这个问题问得好,在很久以前就有人问过此问题。具体细节是这样的,当你从连接池中获取到了一个 Connection 对象,你是一定要去关闭的,否则很快就会耗尽连接造成系统无法响应,也可以理解成一种资源回收泄漏。
而上例代码中的 conn.close() 实际上就是告诉连接池管理类这个连接需要回收到池子里面去,好让后续的线程再获取后再利用,如果不调用 conn.close(),那么这个连接就被认为一直被某个线程在占用着。
简单来说,从连接池中获取到的连接,调用它的 close() 方法以后并不是真正断开与数据库的连接,而是连接池回收该连接入池,好再利用,注意观察这个 Connection 对象的类型,是被连接池代理过的对象,它的 close() 方法已经被改变了行为,不是断开与库的连接,而是加收到池子里,当然还有很多其它操作,例如一些属性复位等等。
登录 后才可以发表评论