@WebListener
2018. 7. 21. 14:42
@WebListener 애노테이션은 servlet-api 라이브러리를 가져와서 사용할 수 있는 애노테이션으로
클래스 위에 @WebListener를 붙임으로써 톰캣서버에게 Listener 클래스임을 알려주는 것이다.
package bitcamp.pms.listener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ContextLoaderListener {
}
톰캣 서버에게 Listener 클래스임을 알려준 후 ServletContextListener 인터페이스를 구현해서
contextInitialized와 contextDestroyed를 오버라이딩하여 메서드를 사용할 수 있다.
contextInitialized : 톰캣 서버 시작 후 바로 메서드가 동작한다.
- DispatcherServlet 보다 먼저 동작하므로 contextInitialized를 이용하여 ServletContext에 객체를 생성해놓고 DispatcherServlet에서 사용할 수 있다. 혹은 필요한 객체를 미리 생성해두고 생성자 주입에 사용한다.
contextDestroyed : 톰캣 서버 종료 직전 메서드가 동작한다.
package bitcamp.pms.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ContextLoaderListener
implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("톰캣 실행!");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("톰캣 종료!");
}
}