在应用程序关闭时,每个单例bean都会被defaultlistablebeanfactory.destroysingletons()销毁。如果bean有一个名为shutdown的public void no arg方法,那么将调用它。我有一些第三方bean,它们都实现了一个特定的接口,我们称之为donotdestroy,我不希望spring破坏它。
我可以在每个bean上指定一个空字符串销毁方法,如下所示:
@Bean(destroyMethod = "")
public MyBean myBean() {
return new MyBean();
}
不过,我更希望以某种方式配置spring,使其不销毁任何实现donotdestroy的bean。有什么好办法吗?
1条答案
按热度按时间dluptydi1#
我可以实现一个beanfactorypostprocessor来做同样的事情,而不是在每个@bean方法中删除destroy方法:
这避免了添加bean而忘记清空destroy方法的问题。