java - Spring bean中如何释放资源?

标签 java spring

考虑这个例子

@Component
class MyExpensiveClass {
  private DB db;
}

何时 Spring应用程序实例化一个bean myExpensiveClass已创建。

现在,如果我要关闭 applicationContext,我想释放 db 的句柄。 .

有什么方法可以在 Spring 中做到这一点吗?就像实现一个方法和 Spring称之为?

最佳答案

如果使用xml配置,可以注册一个init和destroy方法

<bean id="customerService"class="com.mkyong.customer.services.CustomerService" 
          init-method="initIt" destroy-method="cleanUp">

如果您仅使用注释

@Configuration
public class AppConfig {
    @Bean(initMethodName="init")
    public Foo foo() {
        return new Foo();
    }
    @Bean(destroyMethodName="cleanup")
    public Bar bar() {
        return new Bar();
    }
}

Documentation

关于java - Spring bean中如何释放资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34233510/

相关文章:

java - IE11和Safari没有将授权 header 传递给后端

java - Tasklet 在 spring batch 中删除一个表

java - IntelliJ Spring 在 .xml 文件中声明基础包和类

java - 虽然有数据行,但结果集为空

java - 找出与 web 服务器生成的 html 页面关联的类文件

java - 如何从 tomcat webapp 中的 context.xml 文件中获取资源?

java - 国王的迷宫

java - Moskito 集成不能作为非 Maven 项目的一部分工作

java - 如何在 android 中声明位图/可绘制对象

java - NoClassDefFound错误: com/google/api/gax/grpc/GrpcStatusCode