Spring 为什么JavaBeanXML代码是这样编写的?

Spring 为什么JavaBeanXML代码是这样编写的?,spring,struts,javabeans,Spring,Struts,Javabeans,在我正在从事的一个项目的源代码中,有以下形式的java bean的许多定义: <bean id="BeanName" parent="BeanName-parentBean"/> <bean id="BeanName-parentBean" abstract="true" parent="RealParentBean"> <property name="foo" value="bar"/> <property name="he

在我正在从事的一个项目的源代码中,有以下形式的java bean的许多定义:

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


有什么风格或实际的原因吗?

一件事,将父bean编写在自己的bean定义中可以更容易地创建引用父bean的其他bean,而无需大量复制/粘贴

i、 e


V.S


有一件事,将父bean编写在自己的bean定义中可以更容易地创建引用父bean的其他bean,而无需大量复制/粘贴

i、 e


V.S



我有点认为它与此有关,但看到它有助于我更好地理解它。这样看来,由于bean都是相同的,所以这种情况似乎是微不足道且无效的,但是当您希望以不同的方式在“BeanName2”和“BeanName3”中扩展父bean时,它才是有用的?换句话说,有没有一次你会被要求使用三个具有相同内部值的不同名称的bean?也许你有几个基类作为不同的具体反序列化器,但它们都共享一个父类
抽象反序列化器
我有点认为它必须与此相关,但是看到它帮助我更好地理解了它。这样看来,由于bean都是相同的,所以这种情况似乎是微不足道且无效的,但是当您希望以不同的方式在“BeanName2”和“BeanName3”中扩展父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>
  <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>