我看到应用程序关闭后数据库连接没有关闭。
我们正在使用Spring org.springframework.jdbc.core.support.JdbcTemplate,并已配置连接池。 Tomcat的示例上下文xml是:
<Resource name="jdbc/fooResource"
auth="Container"
testOnBorrow="true"
validationQuery="select 1 from DUAL"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
username="user"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myschema"
maxActive="100"
maxIdle="10"/>
我的Spring bean定义有这个片段:
<jee:jndi-lookup id = "dataSource"
jndi-name = "jdbc/fooResource"
expected-type = "javax.sql.DataSource"/>
观察:
问题:
感谢。
答案 0 :(得分:1)
如果手动创建应用程序上下文,则需要在应用程序上下文中注册关闭挂钩。当您启动应用程序时,获取对上下文的引用并添加此行
context.registerShutdownHook();
如果不这样做,则不会触发销毁事件。