[Spring MVC] ContextLoaderListener(전역 Context 설정)
1. ContextLoaderListener란?
아래와 같은 2개의 dispatcherServlet을 생성했다고 가정해보겠습니다.
<!-- 첫 번째 dispatcherServlet -->
<servlet>
<servlet-name>A-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config/a-dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 두 번째 dispatcherServlet -->
<servlet>
<servlet-name>B-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config/b-dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
각각의 dispatcherServlet은 각각의 Context를 가집니다. 위처럼 2개를 만들었다면 각각의 dispatcherServlet들이 가지는 2개의 독립적인 Context가 만들어지게 됩니다.
A-dispatcher(이하 A)는 a-dispatcher-servlet.xml 파일을 가지고 자신의 Context를 만들 것이고,
B-dispatcher(이하 B)는 b-dispatcher-servlet.xml 파일을 가지고 자신의 Context를 만들 것입니다.
그런데 만약 A와 B 둘 모두에게 필요한 bean이 있어야한다면 어떻게 해야할까요? (공통적으로 사용될 bean)
이때, 전역변수처럼 전역 Context를 만들어서 그 안에 bean을 생성하면 어디서든 접근이 가능해집니다.
이 때, ContextLoaderListener을 사용해 전역 Context를 생성해줄 수 있습니다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
위처럼 contextConfigLocation 파라미터를 정의하지 않으면 디폴트로 /WEB-INF/applicationContext.xml을 설정파일로 사용합니다. 이 때, 각 Context간의 관계는 부모-자식 관계가 됩니다.
'Web > Spring Web MVC' 카테고리의 다른 글
[Spring MVC] 커맨드 객체의 값 검증하기 (Validation 체크) (0) | 2020.01.15 |
---|---|
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그 (2) | 2019.11.27 |
[Spring MVC] <spring:message> 태그로 메시지 출력하기 (0) | 2019.11.14 |
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기) (0) | 2019.11.14 |
[Spring MVC] 커맨드 객체를 이용해서 request 파라미터 사용하기 (0) | 2019.11.13 |
댓글
이 글 공유하기
다른 글
-
[Spring MVC] 커맨드 객체의 값 검증하기 (Validation 체크)
[Spring MVC] 커맨드 객체의 값 검증하기 (Validation 체크)
2020.01.15 -
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
2019.11.27 -
[Spring MVC] <spring:message> 태그로 메시지 출력하기
[Spring MVC] <spring:message> 태그로 메시지 출력하기
2019.11.14 -
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기)
[Spring Web MVC] ModelAndView (Controller에서 View에 데이터 전달하기)
2019.11.14