할 수 있습니 작성 스프링에서 구성 파일 작은 것입니까?

StackOverflow https://stackoverflow.com/questions/94542

  •  01-07-2019
  •  | 
  •  

문제

나는 소수의 프로젝트는 모든 중 하나를 사용하는 프로젝트 데이터에 대한 모델입니다.이러한 각 프로젝트는 자신의 applicationContext.xml 파일의 무리와 함께 반복적인 데이터는 물건입니다.

내가 갖고 싶 modelContext.xml 파일을 다른 나 ui.xml 니다,등등.

한 절차를 밟으면 되나요?

도움이 되었습니까?

해결책

봄 문서(v2.5.5 섹션 3.2.2.1.):

그것은 종종 수 있습니다 유용한 분할 컨테이너로 정의 XML 파일이 있습니다.방법 중 하나는 다음을 로드하는 응용 프로그램 컨텍스트 구성에서 모든 이러한 XML 조각을 사용하여 응용 프로그램 컨텍스트를 생성자는 여러 자원 위치.로 콩 공장,콩을 정의 리더 여러 번 사용할 수 있습을 읽 에서 정의를 각 파일에서 차례입니다.

일반적으로,봄 팀을 선호한 위의 접근 방식 때문에,그것은 유지 컨테이너의 설정 파일을 모르고 는 사실들 결합니다.대체 방법 중 하나 이상을 사용하는 요소의 발생 횟 드 빈 정의에서 다른 파일(혹은 파일).보자 예제:

<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>

<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>

이 예제에서,외부 콩 정의 로드 3 파일 services.xml, messageSource.xml themeSource.xml.모든 경로 위치 로 간주됩 상대 정의 파일을 가져오 그래서 services.xml 이 경우야 같은 디렉토리에이나 클래스 경로 위치 파일을 가져오는 동안,messageSource.xml 고 themeSource.xml 야에 자원 위치 아래의 위치 가져오는 파일입니다.당신이 볼 수 있듯이, 선도하는 슬래시 실제로 무시하지만, 주어진 이들은 간주됩 상대 경로를,그것은 아마도 더 나은 양식을 사용하지 않는 슬래에서 모두.이 의 내용이 파일을 가져오 유효해야 합니다 XML bean 정의 에 따라 파일을 봄 스키마 또 DTD 를 포함한 최고 수준 요소입니다.

다른 팁

우리는 이렇게 우리의 프로젝트에서 작품을 사용하여 클래스 경로*리소스 로더 봄입니다.특정 응용 프로그램,모든 appcontext 파일 응용 프로그램을 포함하는 id 로드됩니다:

classpath*:springconfig/spring-appname-*.xml

예,당신이 할 수 있습니다 이를 통해 가져오기 요소입니다.

<import resource="services.xml"/>

각 요소의 자원 특성이 유효한 경로(예:classpath:foo.xml)

주어진 것 니콜라스 나를 지적하이에서 쉽습니다.그것은 나에게 선택하는 런타임 콩 컨텍스트에 관심이 있어요.

GenericApplicationContext ctx = new GenericApplicationContext();
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(new ClassPathResource("modelContext.xml"));
xmlReader.loadBeanDefinitions(new ClassPathResource("uiContext.xml"));
ctx.refresh();

여기에 내가 무슨 짓을 했는지 하나의 프로젝트입니다.에 web.xml 파일을 정의할 수 있습니다 봄 콩 파일을 원하는 응용 프로그램을 사용:

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      /WEB-INF/applicationContext.xml
      /WEB-INF/modelContext.xml
      /WEB-INF/ui.xml
    </param-value>
  </context-param>

가 아닌 경우에서 정의 web.xml, 자동으로 보인에 대한 /WEB-INF/applicationContext.xml

다른 것을 참고할 수 있지만 이렇게 하지 않으면 큰 팬의 XML 당신이 할 수 있는 많은 물건에서 봄 2.5 으로 주석이 있습니다.

예,당신은 사용 할 수 있습니다 태그 안에"Master"콩 파일입니다.그러나 어떤 이유는?왜 목록에서 파일을 contextConfigLocation 컨텍스트의 param wab.xml 또 als 위치 배열의 빈 공장입니까?

내가 생각하는 여러 파일을 훨씬 더 쉽게 처리합니다.선택할 수 있습니다만 그들 중 일부에 대한 테스트,단순히 추가 이름을 바꾸거나 제거하려면 응용 프로그램의 일부할 수도 있습 boundle 다른 응용 프로그램과 동일한 설정파일을(웹 애플리케이션과 commandline 버전으로 일부 중복의 빈 정의).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top