스프링에서 제공하는 클래스 중에서 ContextLoaderListener가 있다.
이 클래스는 ContextLoader와 ServletContextListener를 상속하고 있다.
그렇다. 이 클래스의 역할은 ServletContextListener로서 서블릿 컨텍스트의 특정 이벤트를 감지해서
ContextLoader로서 Application context를 로딩한다.
실제로 서블릿 컨테이너가 초기화 될 때 (서블릿 컨테이너가 구동될 때)
그 생명주기에 맞게 application context를 만들어서 Servlet Attribute로 등록하고, 제거하게된다.
이렇게 등록된 Servlet Attribute는 모든 서블릿이 접근할 수 있다.
이렇게 공통적으로 접근할 수 있는 application context를 Root Application Context라고 부른다.
이러한 Root Application Context에는 보편적으로 Service, Repository 등 웹 서비스에서 공통적으로 사용할 수 있는 스프링 빈 들이 등록된다.
DispatcherServlet에서는 이 application context를 상속한 자식 context를 구성하게 된다.
그런데! 사실 이렇게 application context를 상속관계에 두고 확장하는 경우는 거의 없다.
그래서 ContextLoaderListener 객체를 만들 일도 거의 없을 것으로 생각된다.
.
.
.
요약하자면 ContextLoaderListener는 서블릿 컨테이너 생명주기에 맞춰서 spring의 application context를 servlet attribute에 등록하고 제거한다.
참고: ContextLoaderListener의 contextInitialized 메소드
'Spring' 카테고리의 다른 글
RequestMapping (0) | 2019.06.29 |
---|---|
HandlerMapping (0) | 2019.06.27 |
Resource Handler (0) | 2019.06.24 |
DispatcherServlet (0) | 2019.06.09 |
ContextLoaderListener의 역할 (0) | 2019.01.02 |