【问题标题】:Does Spring automatically close DataSource and is closing needed?Spring 是否会自动关闭 DataSource 并且是否需要关闭?
【发布时间】:2017-01-11 13:10:19
【问题描述】:

我正在像数百万个应用程序一样在 Spring 中将连接池设置为 bean。

由于事务管理,当应用关闭时,所有连接都将返回到池中。然后该池将被取消引用和/或 JVM 将关闭。

那么,还需要关闭连接池吗? Spring 会自动为DataSources 这样做吗?

【问题讨论】:

标签: java spring


【解决方案1】:

您通常不会关闭 DataSource - 您只需关闭 DataSource 返回的连接。 DataSource 本身永远不会像这样“打开”。

连接池关闭自行处理的一种最简单的方法是 - 当应用关闭时,上下文卸载,通过在连接池bean中定义destroy-method = "close",关闭连接。

例子

<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

【讨论】:

  • 我不确定第一段是否适用于连接池。池显然会保持打开的连接。虽然池最终会被垃圾收集,但我想知道是否需要通过关闭显式释放任何资源。
  • @billc.cn 确实适用,DataSource 是池化的
猜你喜欢
  • 2018-07-15
  • 2016-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2018-10-18
  • 2021-02-17
  • 2013-03-04
相关资源
最近更新 更多