[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커맨드 객체의 값 검증 폼에서 넘어온 파라미터의 값이 정상적인 값인지 검증하는 작업이 필요하다. (이를 Validation 체크라 한다.) 스프링 MVC에서는 이를 위해 2가지 인터페이스를 지원한다. org.springframework.validation.Validator org.springframework.validation.Errors Validator 인터페이스는 다음과 같다. public interface Validator { boolean supports(Class clazz); // Validator가 검증할 수 있는 타입인지 확인한다. void validate(Object target, Errors errors); // target을 검증한 후, 에러값이 있다면 errors에 담는다. } 위… -
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
[Spring MVC] 정적 자원 매핑 - <mvc:resouces> 태그
2019.11.27정적 자원 매핑 - 태그 maven으로 프로젝트를 진행할때 정적 자원은 /src/main/webapp/resources/ 아래에 위치시킨다. .jsp와 같은 뷰 파일은 /src/main/webapp/WEB-INF/views/ 아래에 위치하는데, 뷰에서 정적 자원을 가져오기 위해 경로는 어떤 식으로 작성해야할까? /src/main/webapp/WEB-INF/views/home.jsp 뷰가 있을 때, 해당 뷰에서 정적 자원을 가져오고 싶다면 아래처럼 작성할 수 있다. -
[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
댓글을 사용할 수 없습니다.