首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring bean destroyMethod

Spring bean destroyMethod
EN

Stack Overflow用户
提问于 2017-02-20 11:39:58
回答 1查看 742关注 0票数 0

看看下面的代码,destroy方法是"close“,这个方法只在javax.sql.DataSource (HikariDataSource)的实现类中可用,但在javax.sql.DataSource中不可用。

代码语言:javascript
复制
@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配置来返回一个实现类,如下所示?

代码语言:javascript
复制
@Bean(destroyMethod = "close")
public HikariDataSource dataSource() throws NamingException {
    Context ctx = new InitialContext();
    return (HikariDataSource) ctx.lookup("java:comp/env/jdbc/abc");
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-20 12:43:10

当您通过JNDI查找获取数据源时,它是在您的容器中配置的共享资源。该容器的工作是管理数据源的生命周期。Spring只是使用它,所以不需要关闭它。我建议这样配置它:

代码语言:javascript
复制
@Bean(destroyMethod = "")
public javax.sql.DataSource dataSource() throws NamingException {
    Context ctx = new InitialContext();
    return (DataSource) ctx.lookup("java:comp/env/jdbc/abc");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42336086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档