既存のMappingResourcesまたはSpringの既存のHBMリストにHBMを追加する方法
質問
私は親アプリを含む親アプリを持っています。 私の親アプリには、HBMS の独自のものリストがあります。
<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>
.
マイサブアプリケーションは、依存型HBMの独自のリストを親アプリに追加したいと考えています。 それがうまくいくのかは、このサブアップを含む場合、新しいHBMも含め、子供アプリは含めることができます。
含まれる新しいHBMはのように見えることができます
xx / dd.hbm.xml xx / ee.hbm.xml
どうすればいいですか?
解決
あなたの解決策は次のとおりです。
「MappingResources」をに分割する
<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>
.
子供アプリで Bean "HBmSourceList"を参照して、 "MethodInvokingFactoryBean" を介して別のリストで "addAll"を呼び出します。
<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>
. 所属していません StackOverflow