Spring-JSP

[Spring-JSP] @WebListener 와 ServletContextListener

Jeong Jeon
반응형

@WebListener Annotation은 Servlet-api 라이브러리를 가져와서 사용하는 어노테이션으로,

어노테이션을 달면 톰캣에게 이클래스는 Listener이다 라고 알려준다.

 

톰캣에게 나는 리스너다 라고 알려준뒤 ServletContextListener interface를 받아, contextInitialized와 contextDestroyed를 오버라이딩하여 메서드를 사용할 수 있다.

 

#여기서 리스너란?

특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 컴포넌트(메서드나 함수)를 뜻한다.

@WebListener
public class ContextLoaderListener implements ServletContextListener {
    
    @Override
    public void contextInitialized(ServletContextEvent event) {
        System.out.println("###contextInitialized###");        
    }
    
    @Override
    public void contextDestroyed(ServletContextEvent event) {
        System.out.println("###contextDestroyed###");
    }
    
}

물론 xml에다가 설정하여 사용할 수 있지만, @WebListener 어노테이션만으로도 가능하기 때문에 편하게 쓰자..

 

contextInitialized(); : 컨텍스트 초기화된 후 호출되는 메서드

contextDestroyed(); : 컨텍스트 종료시 호출되는 메서드

 

추가 ServletContextEvent를 파라미터로 받는데, getServletContext()를 통해 servletContext를 가져올수 있다.

 

서버 구동, 종료 시 필요한 로직이 있다면 해당 부분에서 사용가능하다.

반응형