Java 在Spring 2.5中注册关机挂钩
我有一个spring应用程序,它在关机时不调用bean销毁方法。我已经看到对这一点的引用是由于BeanRefactory中的实例化,可以通过在应用程序上下文上手动调用RegisterSutdownhook()来避免这一点。这个方法似乎在spring 2.0-2.5版本之间消失了 有人能告诉我现在是怎么做的吗Java 在Spring 2.5中注册关机挂钩,java,spring,Java,Spring,我有一个spring应用程序,它在关机时不调用bean销毁方法。我已经看到对这一点的引用是由于BeanRefactory中的实例化,可以通过在应用程序上下文上手动调用RegisterSutdownhook()来避免这一点。这个方法似乎在spring 2.0-2.5版本之间消失了 有人能告诉我现在是怎么做的吗 谢谢。此方法在中仍然可用,并由实现 所以你也许能做到这一点 ApplicationContext ctx = ...; if (ctx instanceof ConfigurableAppl
谢谢。此方法在中仍然可用,并由实现 所以你也许能做到这一点
ApplicationContext ctx = ...;
if (ctx instanceof ConfigurableApplicationContext) {
((ConfigurableApplicationContext)ctx).registerShutdownHook();
}
或者,您可以简单地调用((ConfigurableApplicationContext)ctx)。关闭()
自己关闭应用程序或使用自己的关闭挂钩:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run(){
if (ctx instanceof ConfigurableApplicationContext) {
((ConfigurableApplicationContext)ctx).close();
}
}
});
这么多的Upvots,但是第二个语句是完全错误的,java中的system.exit会在到达shutdownhook之前终止spring,正确的方法是以下4种方法 1初始化Bean和DisposableBean回调接口 2个用于特定行为的其他感知接口 bean配置文件中的3个自定义init()和destroy()方法 4@施工后和@施工前注释
点击 你能发布一个链接到你描述的最初问题的描述吗?