우리는 현재 여러 프로젝트 / 모듈로 분할 된 애플리케이션을 작성하고 있습니다. 예를 들어 다음 모듈을 살펴 보겠습니다.
- myApp-DAO
- myApp-jabber
각 모듈에는 고유 한 Spring 컨텍스트 xml 파일이 있습니다. DAO 모듈의 경우 필요한 db 연결 매개 변수가있는 속성 파일을 읽는 PropertyPlaceholderConfigurer가 있습니다. jabber 모듈에는 jabber 연결 속성에 대한 PropertyPlaceHolderConfigurer도 있습니다.
이제 myApp-DAO 및 myApp-jabber를 포함하는 기본 애플리케이션이 제공됩니다. 모든 컨텍스트 파일을 읽고 하나의 큰 Spring 컨텍스트를 시작합니다. 불행히도 컨텍스트 당 PropertyPlaceholderConfigurer는 하나만있을 수 있으므로 먼저로드되는 모듈이 연결 매개 변수를 읽을 수 있습니다. 다른 하나는 "자리 표시 자 'jabber.host'를 확인할 수 없습니다. '와 같은 오류와 함께 예외를 발생시킵니다.
나는 문제가 무엇인지 이해하지만 실제로 해결책이나 내 사용 사례에 대한 모범 사례를 알지 못합니다.
각 모듈이 자체 속성 파일을로드 할 수 있도록 각 모듈을 어떻게 구성합니까? 지금은 별도의 컨텍스트 파일에서 PropertyPlaceHolderConfigurer를 이동하여 기본 응용 프로그램의 컨텍스트에 병합했습니다 (단일 PropertyPlaceHolderConfigurer로 모든 속성 파일로드). 하지만 이제는 dao 모듈을 사용하는 모든 사람이 자신의 컨텍스트에서 PropertyPlaceHolderConfigurer가 필요하다는 것을 알아야하므로 dao 모듈의 통합 테스트가 실패합니다.
stackoverflow 커뮤니티에서 솔루션 / 아이디어에 대해 듣고 싶습니다.