[SPRING] DispatcherServlet이 다른 응용 프로그램 컨텍스트를 만드는 이유는 무엇입니까?
SPRINGDispatcherServlet이 다른 응용 프로그램 컨텍스트를 만드는 이유는 무엇입니까?
ContextLoaderListener 및 컨텍스트 init-parameter contextConfigLocation을 사용하여 루트 응용 프로그램 컨텍스트를 구성했습니다.
그런 다음 루트 컨텍스트는 JSF (* .jsf) 변수 해결 자에 의해 액세스됩니다. 그것은 잘 작동합니다.
이제 문제는 DispatcherServlet을 통해 진행되는 요청 (* .do)이 다른 응용 프로그램 컨텍스트를 얻고 싱글 톤 빈이 두 번 인스턴스화된다는 것입니다.
DispatcherServlet에 다른 응용 프로그램 컨텍스트가 필요하지 않습니다. ContextLoaderListener에 의해로드 된 기존 루트 응용 프로그램 컨텍스트를 다시 사용하도록 지정하려면 어떻게해야합니까?
노트
답변의 참조 페이지를 읽은 후에는 루트 컨텍스트와 디스패처 컨텍스트간에 컨텍스트 분리가 있음을 알고 있지만 참조가 어디로 가는지 알려주지 않습니다. 그래서 여기에 내 해결책이 있습니다. 아마 비슷한 질문에 직면 한 다른 사람들에게 도움이 될 것입니다.
해결법
-
==============================
1.첫 번째 질문에 대답하기 위해 DispatcherServlet은 컨텍스트를 생성합니다. 컨텍스트를 생성하는 방법이며, 하나의 응용 프로그램에 DispatcherServlet이 여러 개 있으면 각각 따로 구성해야합니다. 그러므로 각각의 컨텍스트는 고유 한 컨텍스트를 가지며 이러한 컨텍스트 각각은 "루트"컨텍스트와 별개입니다. 실제 "작업중인"모든 bean은 다른 컨텍스트간에 공유 될 수 있도록 살아야합니다. 지난 몇 주간이 문제에 대한 혼란으로 생겨난 수많은 질문이있었습니다. 답변을 확인하여 어떻게 작동하는지 더 잘 이해할 수 있습니다.
첫 번째 질문에 대답하기 위해 DispatcherServlet은 컨텍스트를 생성합니다. 컨텍스트를 생성하는 방법이며, 하나의 응용 프로그램에 DispatcherServlet이 여러 개 있으면 각각 따로 구성해야합니다. 그러므로 각각의 컨텍스트는 고유 한 컨텍스트를 가지며 이러한 컨텍스트 각각은 "루트"컨텍스트와 별개입니다. 실제 "작업중인"모든 bean은 다른 컨텍스트간에 공유 될 수 있도록 살아야합니다. 지난 몇 주간이 문제에 대한 혼란으로 생겨난 수많은 질문이있었습니다. 답변을 확인하여 어떻게 작동하는지 더 잘 이해할 수 있습니다.
봄 XML 파일 구성 계층 도움말 / 설명
부모 컨텍스트에서 자식 컨텍스트와 스프링 컨텍스트 선언
Spring-MVC : "컨텍스트"와 "네임 스페이스"란 무엇입니까?
-
==============================
2.DispatcherServlet을 실행 중이면 ContextLoaderListener를 사용할 필요가 없습니다. ContextLoader.getCurrentWebApplicationContext ()를 사용하여 WebApplicationContext에 액세스하면됩니다.
DispatcherServlet을 실행 중이면 ContextLoaderListener를 사용할 필요가 없습니다. ContextLoader.getCurrentWebApplicationContext ()를 사용하여 WebApplicationContext에 액세스하면됩니다.
이 이전 답변에 설명 된대로 빈 정의를 별도로 유지하십시오.
from https://stackoverflow.com/questions/7833767/why-dispatcherservlet-creates-another-application-context by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring XML 컨텍스트에서 조건부 리소스 가져 오기를 수행하는 방법? (0) | 2018.12.08 |
---|---|
[SPRING] JPA EntityListener에 Spring 의존성 삽입하기 (0) | 2018.12.08 |
[SPRING] "NoClassDefFoundError : 클래스를 초기화 할 수 없습니다"오류 (0) | 2018.12.08 |
[SPRING] Spring 내에서 알려지지 않은 속성을 무시하도록 Jackson을 어떻게 세계적으로 설정합니까? (0) | 2018.12.08 |
[SPRING] Spring에서 조롱 된 JNDI 데이터 소스를 테스트하는 방법은 무엇입니까? (0) | 2018.12.08 |