我应该在Web应用程序中放置清理代码?

时间:2012-07-10 08:25:09

标签: java tomcat web-applications servlets

我有以下问题:
我需要从Tomcat中作为Web应用程序的一部分加载的各种类中运行一些清理代码 清理代码的范围从关闭executors到数据库清理代码 我试过并发现了(并且事后得知这是如此记录的):

  

所有servlet和过滤器都将在 之前被销毁   ServletContextListeners会收到上下文破坏的通知。

因此,这排除了在任何ServletContextListeners中运行清理代码 我将清理代码放在destroy的{​​{1}}方法中,但意识到如果客户端不需要使用它,它将从不加载,因此清除Servlet方法中的代码永远不会运行 所以现在我被卡住了。
在Web应用程序中清理代码的最佳位置在哪里,例如如果我把它放在destroy我无法确保客户端会使用它,如果我把它放在servlet中,那为时已晚?

1 个答案:

答案 0 :(得分:0)

如果您可以选择将servlet配置为在启动时加载,那么就可以解决问题。

有关示例和一些讨论,请参阅What does the servlet <load-on-startup> value signify