在web应用程序中调用ExecutorService.shutdown()的位置



我想知道在web应用程序中关闭ExecutorService的正确位置是什么?

根据文档,ExecutorService应该关闭,但在web应用程序中,代码中正确的位置是什么?

更新:很抱歉不清楚。让我们在JavaEE下考虑一个具有MVC的基于web的应用程序(例如SpringMVC)。它有控制器->立面->服务。它没有EJB。

"Java EE"涵盖了一系列广泛的技术。如果您谈论的是servlet,容器在关闭时会调用destroy(),您可以在那里关闭ExecutorService。如果服务由托管bean拥有,则可以使用@PreDestroy来标记这样做的方法

您可以使用ServletContextListener:获得挂钩

@WebListener
public class MyServletContextListener implements ServletContextListener {
    public void contextInitialized(ServletContextEvent e) {
        log.info("Hello");
    }
    public void contextDestroyed(ServletContextEvent e) {
        log.info("Bye");
        // Do cleanups here
    }
}

最新更新