我有一个家长应用程序,其中包括子应用程序。我的父应用程序有自己包含的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>我的子应用程序想要将它自己的从属hbms列表添加到父应用程序的列表中。它的工作方式是,如果它包括这个子应用程序,那么它也将包括新的hbms,子应用程序将启动包含。
要包含的新hbms可能如下所示
xx/dd.hbm.xml xx/ee.hbm.xml
我们该怎么做呢?
发布于 2012-01-23 22:38:10
您的解决方案可能是:
将“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>https://stackoverflow.com/questions/8973167
复制相似问题