2012-09-24 4 views
3

하나의 파일에 applicationContext.xml 구성이 있습니다. 데이터 소스, 세션 팩토리 및 다른 두 개의 빈이 있습니다. 의 ApplicationContext와 상속의 ApplicationContext에서 상속 bean1을 스프링 컨텍스트 상속

  • bean2.xml -> children에 대한 유일한 정보를 포함 데이터 소스, 세션 팩토리
  • bean1.xml -> children를 포함

    • applicationContext.xml -> parent을 :

      나는 다음과 같은 구성을 변경하려면 bean2에 대한 정보 만 포함

    어떻게 할 수 있습니까? 상속 콩에 대한 정보를 찾았지만 하나가 아니라 다른 세 파일을 원합니다

  • 답변

    1

    봄에 import tag을보십시오. bean1.xml 및 bean2.xml에서이 파일을 사용하여 최상위 레벨 인 applicationContext.xml 구성 파일을 가져올 수 있으므로로드 할 때 두 구성이 분리됩니다.

    0

    원칙적으로 응용 프로그램 컨텍스트는 상위 컨텍스트를 가질 수 있으며 단순히 거기에서 모든 빈을 상속받습니다. 완전하게 사소하지 않은 것은 (최근에 변경되지 않은 한) 관계를 어떻게 구성 할 것인가입니다.

    http://blog.springsource.org/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/

    (I 저자와 어떤 제휴에서 오전) :

    이 나를 도왔다.

    또 다른 방법은 실제로 이렇게 코드를 작성하는 것입니다. 웹 애플리케이션 시나리오가 있다면 Spring의 ContextLoaderListener를 확장하고 loadParentContext를 덮어 쓸 수 있습니다.

    public class ComponentParentContextContextLoaderListener extends ContextLoaderListener { 
    
        @Override 
        protected ApplicationContext loadParentContext(ServletContext servletContext) { 
         // load parent context .e.g from class path/static member 
         return ac; 
        } 
    
    } 
    
    관련 문제