java——通过GenericObjectPool获取到的资源,调用close()方法会close还是returnObject?

一种优雅的关闭资源的方式是使用try(){}cache(){}

就像这样:

 这时候,try()里面的资源会在return语句执行结束之后自动调用close()方法,那么问题来了,当我们使用连接池的时候,并不希望资源被close,而是希望资源用完后自动returnObject(),那么这种优雅的try语句是不是不能使用了呢?

是可以的哦~

 

 从上面可以看出,实际上pool对放进去的连接有了额外的一层封装,实际上是通过动态代理的方式创建连接,而这些连接的close()方法被重新定义了,在调用close方法时候实际上是调用了returnObject()方法~

猜你喜欢

转载自www.cnblogs.com/gaoquanquan/p/11593333.html