2013-01-03 6 views
1

저는 스프링 프레임 워크에 익숙하지만, 프로젝트 아키텍처 관점에서 스프링 사용과 관련하여 많은 질문을 가지고 있습니다. 이제 저는 Spring 3와 Maven 웹 어플리케이션을 설치하려고합니다. 그리고 멋진 컴포넌트 스캔과 autowiring 기능을 모두 시도해 볼 생각입니다. 그러나 이것은 혼란 스럽습니다.스프링 3 애플리케이션 컨텍스트 로딩

프로젝트를 하위 모듈로 분해하려고합니다. 그리고 어떤 지점에서이 하위 모듈은 something-context.xmlclasspath*:resource/META-INF에 포함 할 수 있습니다. 예를 들어, 별도의 모듈에 datasource 관련 내용을 정의하고자 할 때처럼 말입니다. 그래서 멋진 봄입니다. 모든 병의 클래스 경로에서 컨텍스트 파일을로드 해 봅시다.

하지만 여기가 막연한 곳입니다. 구성 요소 검사를 사용하고 있습니다. 분명히 스프링 DispatcherServlet을 사용하고 있으며로드 할 서블릿 컨텍스트가 필요하며 web.xml에 지정된 전역 응용 프로그램 컨텍스트 매개 변수가 있습니다 contextConfigLocation.

는 이제 서블릿 컨텍스트 설정이 com.mycom.project.controllers 글로벌 contextConfigLocation에로드 컨텍스트를 사용할 구성 요소 - 스캔 기능을 가지고도 classpath*:META-INF/spring/*-context.xml 검색 패키지 com.mycom.project에 대한 구성 요소 스캔 기능로드 컨텍스트를 가지고있다.

제 질문은 -이 부하 컨트롤러는 두 번 해당 구성품 스캔이 com.mycom.project.controllerscom.mycom.project에 대해 사용되는 경우입니까? 또는 하나의 거대한 컨테이너에 모두로드되고 DispatcherServlet 또는 DispatcherServlet에 대한 contextConfigLocation 매개 변수가 액세스 문제입니까? DispatcherServlet에서와 같이 servlet-context.xml에 정의 된 것만 도달 할 수 있지만 다른 것을 사용할 수 없습니까?

내 가정이 틀린 경우 다중 모듈 프로젝트 문제를 관리하는 방법에 대한 제안을받을 수 있습니까?

감사합니다.

답변

2

예, 문제가 발생할 수 있습니다. 문제를 해결하는 방법은이 링크를 참조하십시오. 모듈을 만들 때 진행

@Service are constructed twice

방법은 나에게 유효한 것 같다. 각 모듈에 대한 context.xml 파일이 있으며 응용 프로그램을로드하면 모든 모듈이로드됩니다. 모듈은 자체 완비 형이며 다른 환경에서도 사용할 수 있습니다. 그게 내가하는 일이기도하다.

+0

빠른 답변을 보내 주셔서 감사합니다. 대답은 정말 도움이되었다. – Xeperis

관련 문제