2012-01-23 5 views
2

私はサブアプリケーションを含むparent-appを持っています。 私の親アプリがSpringの既存のmappingResourcesまたは既存の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が

のようになります。XX/dd.hbm.xml XX/ee.hbm.xml

我々はそれをどのように行うことができますか?

答えて

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> 
関連する問題