如何在Spring bean中释放资源?

时间:2015-12-11 22:22:22

标签: java spring

考虑这个例子

@Component
class MyExpensiveClass {
  private DB db;
}

Spring应用程序实例化时,会创建一个bean myExpensiveClass

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

我有办法在春天这样做吗?比如实现一个方法并Spring调用它?

1 个答案:

答案 0 :(得分:0)

如果您使用的是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