1

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

在通知任何 ServletContextListener 上下文销毁之前,所有 servlet 和过滤器都将被销毁。

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

4

1 回答 1

0

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

有关示例和一些讨论,请参阅servlet <load-on-startup> 值表示什么。

于 2013-07-26T13:50:40.097 回答