Cómo agregar más HBM a MapingResources existentes o la lista HBM existente en la primavera

StackOverflow https://stackoverflow.com/questions/8973167

Pregunta

Tengo una aplicación para padres, que incluye sub-aplicaciones. Mi aplicación para padres tiene su propia lista incluida de 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>

Mis subcomisiones quieren agregar su propia lista de HBMS dependientes a las aplicaciones para padres. La forma en que debería funcionar es, si incluye esta subp aplicación, también incluiría el nuevo HBMS y la aplicación infantil iniciaría la inclusión.

El nuevo HBMS que se incluirá podría parecer

xx / dd.hbm.xml xx / ee.hbm.xml

¿Cómo podemos hacerlo?

¿Fue útil?

Solución

Tu solución podría ser:

dividir los 'MappingResources' a

<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>

en la aplicación infantil Consulte el frijol "HBMSOURCELIST" e invoque un "Addall" en él con otra lista a través del "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>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top