Spring DisposableBean不起作用

时间:2011-03-11 17:55:48

标签: spring tomcat

我正在我的一个bean中实现DisposableBean,以便在我的服务器关闭时收到通知。但是,永远不会调用destroy方法。

我正在使用Spring 3运行Tomcat。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

使用ContextLoaderListener并覆盖contextDestroyed方法。

不要忘记在ContextLoaderListener中声明web.xml

答案 1 :(得分:0)

使用AbstractApplicationContext而不是使用ApplicationContext。 然后注册相同。如果您使用ApplicationContext,Spring不会为桌面应用程序调用DisposableBean。

例: AbstractApplicationContext appCxt = new ClassPathXmlApplicationContext(" spring.xml");     appCxt.registerShutdownHook();

答案 2 :(得分:0)

我尝试了这个选项。

使用obj方法的destroy()对象,添加以下内容:

  

Runtime.getRuntime().addShutdownHook(新线程(obj :: destroy));