我想知道在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
}
}