【发布时间】:2017-01-11 13:10:19
【问题描述】:
我正在像数百万个应用程序一样在 Spring 中将连接池设置为 bean。
由于事务管理,当应用关闭时,所有连接都将返回到池中。然后该池将被取消引用和/或 JVM 将关闭。
那么,还需要关闭连接池吗? Spring 会自动为DataSources 这样做吗?
【问题讨论】:
我正在像数百万个应用程序一样在 Spring 中将连接池设置为 bean。
由于事务管理,当应用关闭时,所有连接都将返回到池中。然后该池将被取消引用和/或 JVM 将关闭。
那么,还需要关闭连接池吗? Spring 会自动为DataSources 这样做吗?
【问题讨论】:
您通常不会关闭 DataSource - 您只需关闭 DataSource 返回的连接。 DataSource 本身永远不会像这样“打开”。
连接池关闭自行处理的一种最简单的方法是 - 当应用关闭时,上下文卸载,通过在连接池bean中定义destroy-method = "close",关闭连接。
例子
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
【讨论】: