Listener?
<!-- web.xml에 리스너 등록하는 코드 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
-> ServletContextListener 로부터 implements된 클래스. -> ServletContext를 감시하는 Listener를 만드려면 이 ServletContextListener를 구현해야함.
↳ 컨텍스트 객체가 생성될 때 자동으로 호출되는 메서드.
<!-- web.xml 에 설정 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext2.xml</param-value>
</context-param>
↳ servlet Context 객체의 파라미터로 설정하는 것
↳ 오른쪽에 있는 코드
📌 스프링 컨테이너 구동 과정
1. Spring ApplicationContext 작업
- 톰캣 구동 → ServletContext 객체 생성
→ ContextLoaderListener 감시자의contextInitialized()
호출
→ ServletContext 객체의 parameter 중ContextConfigLocation
값 찾기 (ex, /WEB-INF/myApplicationContext2.xml)
→ xml문서 읽어서 Spring WebApplicationContext 생성
→ Spring WebApplicationContext 반환( 미리 Spring WebApplicationContext을 만들어 놓고 뒤에 2번 작업을 통해 컨테이너를 update, 보강하는 작업을 함.)
2. Spring ApplicationContext 작업
- DispatcherServlet 객체 생성 될때, 반환받은 Spring WebApplicationContext을 사용
→ DispatcherServlet의 parameter중에 contextConfigLocation이라는 parameter 값을 찾음
(ex, /WEB-INF/myServletContext.xml)
→ xml을 읽어서 SpringWebApplicationContext를 update하는 작업.
- 시간이 오래걸리는 파란줄 쳐진 작업을 먼저하고, 그 후에 servlet으로 보강하는 작업을 거침!!!