본문 바로가기

Spring

ContextLoaderListener

스프링에서 제공하는 클래스 중에서 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