时间真的过得很快,马上就最后一天了。
一直划水,实在太惭愧了,总结了下,发现跟最初的预期有点远,但是还是读进去几回,还是很有意思的。
最后看了下回收连接的流程
连接回收的目的是将可用的连接放回池中,以达到连接循环利用的目的,这样可以节省性能。从以上回收的过程来看,在回收时会先进行一系列连接的校验,比如连接的可用性校验、连接超时校验等待,如果不符合校验条件,就直接将连接close掉了:见方法discardConnection(holder),此时也就不能将连接放回池中。
DruidDataSource.close()
该方法是回收连接池的,主要用于系统关闭时或者Spring容器销毁时调用,可以通过@Bean注解指定。
一般我们根本用不到这个功能,也不需要进行连接池的手动回收,当发生以上场景时基本上应用系统进程停了或者故障挂了,那么连接池也会随着进程被回收了;
DruidPooledConnection.close()
该方法才是对连接池中的连接进行回收,它跟DruidDataSource.close()一个是描述连接池中连接的生命周期的结束,一个是描述连接池的生命周期的结束。