从工厂收到的Spring父bean是否有属性?

时间:2011-10-27 18:27:31

标签: java spring javabeans

我有一个具有map属性的抽象父bean。 此地图必须与child的map属性合并。 这是工作。但是当我把这个bean作为内部工厂 - map属性似乎消失了。 我想内部豆的字段不适合孩子。

<bean id="parent" factory-bean="factory"
 factory-method="createbean"> 
  <constructor-arg>
    <bean abstract="true">
       <property name="prop" > 
         <map>
           <entry ............
           .................
         </map 
 ...............

下一个bean:

  <bean id="child" parent="parent">

这是对的吗?感谢。

1 个答案:

答案 0 :(得分:2)

这是一个有效的例子:

<bean id="parent" abstract="true" factory-bean="factory" factory-method="createBean">
    <constructor-arg index="0">
        <props>
            <prop key="One">one-value</prop>
            <prop key="Three">three-value</prop>
        </props>
    </constructor-arg>
</bean>

<bean id="child" parent="parent">
    <constructor-arg index="0">
        <props merge="true">
            <prop key="Two">two-value</prop>
            <prop key="Three">not-three-value</prop>
        </props>
    </constructor-arg>
</bean>

返回子bean时,传入的属性对象将具有值:

One=one-value
Two=two-value
Three=not-three-value

请注意,“Three”键的值被覆盖,因为它包含在子bean中