spring - 如何在 Spring 中向现有的映射资源或现有的 hbm 列表添加更多的 hbm

标签 spring list addition extend 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>

我的子应用程序想要将其自己的依赖 hbms 列表添加到父应用程序的列表中。 它应该工作的方式是,如果它包含这个子应用程序,那么它也会包含新的 hbms,并且子应用程序将启动包含。

要包含的新 HBMS 可能如下所示

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>

关于spring - 如何在 Spring 中向现有的映射资源或现有的 hbm 列表添加更多的 hbm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973167/

相关文章:

sql - 合并并添加两个表中的值

java - 在Java中,两个字符相加的结果是int还是char?

r - R 中数据帧列表的逐元素中值

list - 斯卡拉 : transform a list into a map

mysql - 如何在两个文本框中添加字符串值

spring - 在 Grails 3 中将 JNDI 添加到嵌入式 Tomcat 服务器

java - 无法构造泛型类型参数,该怎么办?

java - spring 配置服务器 - 用于本地 git 存储库

spring - ETL、Esper 还是 Drools?

java - 在多个 Controller 中重用服务层调用的结果