2012-01-23 6 views
2

하위 애플 리케이션을 포함하는 상위 앱이 있습니다. 내 부모 응용 프로그램은Spring의 기존 매핑 리소스 또는 기존 hbm 목록에 hbm을 추가하는 방법

<bean name="mappingResources" 
     class="my.xxx.MyListFactoryBean"> 
     <property name="sourceList"> 
      <list> 
       <value>aaa/bbb/aa.hbm.xml</value> 
       <value>aaa/bbb/bb.hbm.xml</value> 
       <value>aaa/bbb/cc.hbm.xml</value> 
      </list> 
     </property> 
    </bean> 

내 하위 응용 프로그램은 부모의 앱에 의존 hbms의 자신의 목록을 추가 할 hbms 자체 포함 목록이 있습니다. 작동 방식은이 하위 응용 프로그램이 포함되어 있으면 새 hbms도 포함되며 하위 응용 프로그램은 포함을 시작합니다.

새로운 hbms는

우리가 그것을 어떻게 /를 dd.hbm.xml을 할 수 ee.hbm.xml XX /XX처럼 보일 수 포함될?

답변

4

귀하의 솔루션이 될 수있다 :

까지 'mappingResources'분할로 상에 "오퍼레이션과 addAll을"빈 "hbmSourceList"를 참조하여 호출하는 아동 응용 프로그램 에서

<bean name="mappingResources" class="my.xxx.MyListFactoryBean"> 
    <property name="sourceList" ref="hbmSourceList" /> 
</bean> 

<bean id="hbmSourceList" class="java.util.ArrayList"> 
    <constructor-arg> 
     <list> 
      <value>aaa/bbb/aa.hbm.xml</value> 
      <value>aaa/bbb/bb.hbm.xml</value> 
      <value>aaa/bbb/cc.hbm.xml</value> 
     </list> 
    </constructor-arg> 
</bean> 

에 "MethodInvokingFactoryBean"을 통한 또 다른 목록

<bean id="hbmSourceListExtender" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
    <property name="targetObject"><ref bean="hbmSourceList"/></property> 
    <property name="targetMethod"><value>addAll</value></property> 
    <property name="arguments"> 
     <ref local="childAppHbmSourceList"/> 
    </property> 
</bean> 

<bean id="childAppHbmSourceList" class="java.util.ArrayList"> 
    <constructor-arg> 
     <list> 
      <value>xx/dd.hbm.xml</value> 
      <value>xx/ee.hbm.xml</value> 
     </list> 
    </constructor-arg> 
</bean>