看看下面的代码,destroy方法是"close“,这个方法只在javax.sql.DataSource (HikariDataSource)的实现类中可用,但在javax.sql.DataSource中不可用。
@Bean(destroyMethod = "close")
public javax.sql.DataSource dataSource() throws NamingException {
Context ctx = new InitialContext();
return (DataSource) ctx.lookup("java:comp/env/jdbc/abc");
}Spring是否能够调用上面的close方法,或者我需要重新定义Bean Java配置来返回一个实现类,如下所示?
@Bean(destroyMethod = "close")
public HikariDataSource dataSource() throws NamingException {
Context ctx = new InitialContext();
return (HikariDataSource) ctx.lookup("java:comp/env/jdbc/abc");
}发布于 2017-02-20 12:43:10
当您通过JNDI查找获取数据源时,它是在您的容器中配置的共享资源。该容器的工作是管理数据源的生命周期。Spring只是使用它,所以不需要关闭它。我建议这样配置它:
@Bean(destroyMethod = "")
public javax.sql.DataSource dataSource() throws NamingException {
Context ctx = new InitialContext();
return (DataSource) ctx.lookup("java:comp/env/jdbc/abc");
}https://stackoverflow.com/questions/42336086
复制相似问题