我有以下问题:
我需要从作为 Tomcat 中 Web 应用程序的一部分加载的各种类中运行一些清理代码。
清理代码的范围从关闭executors
到数据库清理代码。
我尝试并发现(后来得知这是这样记录的):
在通知任何 ServletContextListener 上下文销毁之前,所有 servlet 和过滤器都将被销毁。
所以这排除了在任何ServletContextListeners
.
我将清理代码放在destroy
a 的方法中Servlet
,但意识到如果客户端不需要使用它,它将永远不会被加载,因此方法中的清理代码destroy
将永远不会运行。
所以现在我被卡住了。
在 Web 应用程序中放置清理代码的最佳位置在哪里,因为例如,如果我将其放入 a 中,servlet
我无法确保客户端会使用它,而如果我将其放入 alistener
中为时已晚?