현재 Maven 빌드의 "main"applicationContext-a.xml을 사용하여 ApplicationContext를 만들어야합니다. 다른 하나는 다른 Maven 빌드의 클래스를 연결하고 Maven 의존성에 포함 된 jar에 미리 설정되어 있습니다. 여기에 아이디어 Jar의 여러 XML 파일이있는 Spring ApplicationContext
:이 같은 프로젝트에 있기 때문에
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {
"classpath*:applicationContext-*.xml"});
이 클래스 경로에서의 ApplicationContext-a.xml을로드해야합니다. 이 작동합니다.
그런 다음 applicationContext-b.xml을 dependency-jar에서로드해야합니다. 이것은 작동하지 않습니다.
"classpath*:applicationContext-*.xml"
만, 직접 클래스 경로 내부의 항아리 내부에 아무것도를 XMLS 일치 없다는 것을는
참고.
에게 내가 발견 무엇 :
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {
"classpath*:applicationContext-*.xml", "classpath*:applicationContext-b.xml"});
이 작동,하지만 난 명시 적으로 단지 내부의 XML의 파일 이름을 알 수있는 경우에만 : ApplicationContext를-b.xml 나는이 필요
을 통합 테스트를 위해 일하기 :
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"**/applicationContext*.xml"})
public class TestClass { ... }
가장 좋은 생각은 사용자 정의 로더 일 수 있습니까? 이 패턴 작업을 수행하는 방법이 있어야합니다.
얼마 전에 다른 방법으로 작동하는 solution이있었습니다. 단지 jar에서 applicationContext.xml 만 가져옵니다. 클래스 패스 안에 다른 사람이 있으면이 파일에서만 일치합니다.
이것은 간단히 말해서 xml 파일이 jar 파일 내부의 'spring'과 같은 하위 디렉토리에있는 경우 작동합니다. 대단히 감사합니다. – blang