2011-02-25 91 views
1

在一个项目我工作的源代码,也有形式的Java bean的许多定义:为什么这个JavaBean XML代码是这样写的?

<bean id="BeanName" parent="BeanName-parentBean"/> 

    <bean id="BeanName-parentBean" abstract="true" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 

我不明白这一点,更简洁的区别:

<bean id="BeanName" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 

这是否有文体或实际的原因?

回答

1

有一件事,将父bean写入它自己的bean定义中,可以更容易地创建其他指向父bean的bean,而无需复制/粘贴。

<bean id="BeanName" parent="BeanName-parentBean"/> 
<bean id="BeanName2" parent="BeanName-parentBean"/> 
<bean id="BeanName3" parent="BeanName-parentBean"/> 

    <bean id="BeanName-parentBean" abstract="true" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 

V.S.

<bean id="BeanName" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 
    <bean id="BeanName2" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 
    <bean id="BeanName3" parent="RealParentBean"> 
    <property name="foo" value="bar"/> 
    <property name="herp" value="derp"/> 
    </bean> 
+0

我有点认为它必须做些什么,但看到它帮助我更好地理解它。看起来这种情况是微不足道的,因为bean都是一样的,但是它的用处是什么时候你想在“BeanName2”和“BeanName3”中以不同的方式扩展父bean?换句话说 - 是否有一段时间你会被要求使用三个不同名字的内部值相同的豆子? – RankWeis 2011-02-25 18:07:43

+0

也许你有几个作为不同具体反序列化器的基类,但它们都共享一个父'AbstractDeserializer' – 2011-02-25 18:13:18