use*_*196 38 java web-applications shutdown
当java Web应用程序停止或者tomcat停止时,我需要优先保存一些数据.如何才能做到这一点?编辑:如果我使用jvm关闭钩子的任何缺点?
leo*_*onm 52
使用在web.xml 中实现ServletContextListener的类:
<web-app>
<!-- Usual stuff here -->
<listener>
<listener-class>com.mycompany.MyClass</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
Chs*_*y76 15
为什么要在关机期间专门做?而你真的需要将其保存(如"是绝对关键的?"),或者你会喜欢到(如"将是不错,但我会没有它")?
区别很重要 - 无论您尝试何种方法(其他答案或JVM关闭钩子建议的servlet /上下文侦听器),都无法保证实际调用它.
Servlet /上下文侦听器销毁事件只会在正常(正常)容器关闭期间或应用程序重新加载期间触发.在进程中断期间也会触发JVM关闭挂钩; 然而,杀死一个过程(或切断电源)显然不会触发.
sle*_*ske 11
作为leonm答案的补充:
如果使用Spring,可以使用Spring的"生命周期管理"来实现类似的效果.例如,您可以在bean中注释方法,@PreDestroy以便在容器关闭时自动调用它.这样,你就不需要把任何东西放入了web.xml.
| 归档时间: |
|
| 查看次数: |
42606 次 |
| 最近记录: |