1

웹 응용 프로그램에서 ExecutorService을 종료하는 올바른 위치가 궁금합니까?웹 응용 프로그램에서 ExecutorService.shutdown()을 호출 할 위치

문서 ExecutorService에 따르면 종료해야하지만 웹 응용 프로그램에서 코드를 수행하는 데 올바른 위치는 무엇입니까?

업데이트 : 불시를 드려 죄송합니다. Java EE에서 MVC가있는 웹 기반 응용 프로그램을 고려해 봅시다 (예 : Spring MVC). 그것은 컨트롤러 -> Facades -> Services를 가지고 있습니다. 그것은 EJB를 가지고 있지 않습니다.

+0

명확히하십시오/귀하의 질문에 초점이 너무 광범위입니다 : 서블릿 전용 또는 EJB를뿐만 아니라? AsyncServlet, @Asynchronous 및 EJB MDB 관점에서 그런 위치를 검색 할 필요가 없다는 말을하고 싶습니다. (그리고 스레드를 관리하기 위해 컨테이너에 남겨 두십시오.) – Beryllium

답변

0

"Java EE"는 다양한 기술을 포함합니다. 서블릿에 대해 이야기하고 있다면 컨테이너가 종료 될 때 destroy()으로 전화를 걸어 거기에 ExecutorService을 닫을 수 있습니다. 서비스가 관리 빈에 의해 소유되면 @PreDestroy을 사용하여 메소드를 표시 할 수 있습니다.

0

다음을 사용하여 후크를 얻을 수 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 
    } 
}