[SPRING] 스프링 프레임 워크의 여러 컨테이너 정보
SPRING스프링 프레임 워크의 여러 컨테이너 정보
일반적인 Spring MVC 프로젝트에는 두 개의 "컨테이너"가있다 : 하나는 ContextLoaderListener에 의해 생성되고 다른 하나는 DispatchServlet에 의해 생성된다.
내가 알고 싶은 건,이 두 개의 IoC 컨테이너 인스턴스입니까? (두 개의 빈 설정 파일이 있는데 하나는 root-context.xml이고 다른 하나는 servlet-context.xml입니다)
컨테이너가 2 개인 경우 관계가 무엇입니까?
한 컨테이너에서 선언 된 콩을 다른 컨테이너에서 사용할 수 있습니까?
해결법
-
==============================
1.봄 공식 웹 사이트 :
봄 공식 웹 사이트 :
다시 공식 문서에서 :
이제 여기에 명시된 바와 같이 귀하의 질문에 오는 :
이 링크를 확인하십시오.
Spring Framework에서 applicationContext.xml과 spring-servlet.xml의 차이점
http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-basics
-
==============================
2.생성 된 컨테이너는 두 가지가 아닙니다. 일반적으로 Spring이 객체가 필요할 때 servlet-context.xml에 선언 된 객체를 인스턴스화하려고합니다. 따라서 servlet-context.xml 구성 파일을 Dispatcher 서블릿에 매핑합니다. 즉 요청이 디스패처 서블릿에 도달 할 때 객체를 초기화하려고합니다.
생성 된 컨테이너는 두 가지가 아닙니다. 일반적으로 Spring이 객체가 필요할 때 servlet-context.xml에 선언 된 객체를 인스턴스화하려고합니다. 따라서 servlet-context.xml 구성 파일을 Dispatcher 서블릿에 매핑합니다. 즉 요청이 디스패처 서블릿에 도달 할 때 객체를 초기화하려고합니다.
<servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
컨텍스트가로드 될 때 객체를 초기화하고 작업을 수행하려는 경우 배포 설명자의 context-param 태그에 구성 파일을 선언합니다.
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/root-context.xml</param-value> </context-param>
servlet-context.xml과 root-context.xml에 별도의 bean을 선언 한 다음 사용자 정의 Context Loader Listener 클래스에서 autowiring하여 작성함으로써이를 테스트 할 수있다. 루트 컨텍스트 인스턴스 만 초기화되고 서블릿 컨텍스트 bean은 null임을 알 수 있습니다.
-
==============================
3.스프링 MVC는 최소한 2 개의 컨테이너를 가지고있다.
스프링 MVC는 최소한 2 개의 컨테이너를 가지고있다.
그리고 웹 애플리케이션은 DispatcherServlet을 얼마든지 정의 할 수 있습니다. 각 서블릿은 자체 네임 스페이스에서 작동하며 매핑, 처리기 등으로 자체 응용 프로그램 컨텍스트를로드합니다. ContextLoaderListener에 의해로드 된 루트 응용 프로그램 컨텍스트 (있는 경우) 만 공유됩니다. 따라서 임의의 수의 자식 컨테이너를 가질 수 있습니다.
-
==============================
4.
from https://stackoverflow.com/questions/18578143/about-multiple-containers-in-spring-framework by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 부팅, logback 및 logging.config 속성 (0) | 2018.12.28 |
---|---|
[SPRING] 여러 메소드 인수에 @Cacheable 키 (0) | 2018.12.28 |
[SPRING] Spring 객체는 쓰레드에 안전합니까? (0) | 2018.12.28 |
[SPRING] 프로덕션 환경에서 스프링 부트 실행 가능 jar를 실행하려면 어떻게해야합니까? (0) | 2018.12.28 |
[SPRING] 내 비즈니스 계층에 EJB3 또는 Spring을 사용해야합니까? (0) | 2018.12.28 |