@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("톰캣 종료!");
}
}