我正在我的一个bean中实现DisposableBean,以便在我的服务器关闭时收到通知。但是,永远不会调用destroy方法。
我正在使用Spring 3运行Tomcat。
有什么建议吗?
答案 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));