ExecutorService
我想知道在 Web 应用程序中关闭的正确位置是什么?
根据文档ExecutorService
应该关闭,但代码中的正确位置是在 Web 应用程序中执行此操作吗?
更新:抱歉不清楚。让我们考虑在 Java EE 下使用 MVC(例如 Spring MVC)的基于 Web 的应用程序。它有控制器->外墙->服务。它没有 EJB。
ExecutorService
我想知道在 Web 应用程序中关闭的正确位置是什么?
根据文档ExecutorService
应该关闭,但代码中的正确位置是在 Web 应用程序中执行此操作吗?
更新:抱歉不清楚。让我们考虑在 Java EE 下使用 MVC(例如 Spring MVC)的基于 Web 的应用程序。它有控制器->外墙->服务。它没有 EJB。
“Java EE”涵盖了广泛的技术。如果你在谈论一个 servlet,容器会destroy()
在它被关闭时调用,你可以关闭你的ExecutorService
那里。如果服务由托管 bean 拥有,您可以使用@PreDestroy
标记方法来执行此操作。
您可以使用 a 获得一个钩子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
}
}