본문 바로가기
Spring

ServletContextListener 이벤트 처리

by jayden-lee 2019. 7. 26.
728x90

ServletContextListener 인터페이스

스프링 웹 애플리케이션 컨텍스트의 실행 시점과 종료 시점 이벤트를 리스닝 하는 인터페이스이다.

public interface ServletContextListener extends EventListener {

    public default void contextInitialized(ServletContextEvent sce) {
    }

    public default void contextDestroyed(ServletContextEvent sce) {
    }
}

ServletContextListener 메서드

  1. contextInitialized : 애플리케이션이 시작될 때 호출되는 메서드
  2. contextDestroyed : 애플리케이션이 중지될 때 호출되는 메서드

CustomServletContextListener 구현

public class CustomServletContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("Initialized Context");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("Destroyed Context");
    }
}

CustomServletContextListener 리스너 등록

Configuration 클래스에 CustomServletContextListener 클래스를 Bean으로 등록을 해야만 이벤트를 리스닝 할 수 있다.

@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

    @Bean
    ServletListenerRegistrationBean<ServletContextListener> servletListener() {
        ServletListenerRegistrationBean<ServletContextListener> srb = new ServletListenerRegistrationBean<>();
        srb.setListener(new CustomServletContextListener());
        return srb;
    }

}

ServletContextListener 예제

댓글