2010-03-22 7 views
8

동일한 응용 프로그램에서 org.springframework.web.servlet.DispatcherServletorg.springframework.ws.transport.http.MessageDispatcherServlet을 사용하고 있지만 각 응용 프로그램 컨텍스트가로드되고 있으므로 모든 응용 프로그램 컨텍스트에서 모든 빈을로드해야합니다.웹 응용 프로그램의 단일 스프링 응용 프로그램 컨텍스트 사용

응용 프로그램은 전형적인 계층으로 구성 웹> 응용 프로그램> DAO 등

내가 시도하는 것은 contextConfigLocation에 설정하여 하나의 spring-root-context.xml를 사용하는 것입니다.

하지만 도움이되지 않아 오랫동안 저에게이 문제가있어 도움을 주셔서 감사합니다.

모든 온라인 참조 정보는 큰 도움이됩니다.

답변

12

여기서 필요한 것은 ContextLoaderListener입니다. 이것은 ServletContextListener이며 해당 웹 애플리케이션의 모든 서블릿에서 공유되는 WebApplicationContext 루트를 만듭니다.

DispatcherServletMessageDispatcherServlet은 여전히 ​​자신의 컨텍스트를 만들지 만 각각은 루트 컨텍스트를 부모로 가지므로 DAO와 같이 해당 루트 컨텍스트에 정의 된 Bean을 모두 사용할 수 있습니다. 뷰 분석기, SOAP 엔드 포인트 등과 같은 서블릿 자체 컨텍스트에 남아 있기 위해 공유 된 공통 bean은 루트에 들어갈 수 있습니다.

구성 방법에 대한 예제는 Spring docs을 참조하십시오.

+0

안녕하세요 skaffman, 좋은 도움 덕분에 꿈처럼 지금 일하고 있습니다. 감사합니다. – Ramo

+0

@Ramo : 도와 줘서 다행입니다. 이것은 내 대답 옆에있는 눈금 기호를 클릭하는 곳입니다. – skaffman

+0

link rot strike again. 그러면 어떻게 구성됩니까? – eis

관련 문제