Bean 标签的父属性是否等同于 Java 中的继承?

2022-09-03 04:37:28

我开始学习春季文档。我遇到了属性解释,在两个bean之间使用属性是否等同于这些类之间的继承关系?parentparent

如果是这样,如何执行方法覆盖?另外,我在某些上下文中看到,在XML配置文件中使用属性,在bean类中使用关键字。是否需要指定两个弹簧才能实现继承?parentextends


答案 1
  • 在春季,in bean 配置表示 Java 继承,但与 Java 继承无关。parentconfiguration inheritance
  • 可以节省大量代码,因为您不需要重复的 XML 代码。configuration inheritance

例如,您有具有以下属性的 Bean

Class MyBean {
    attrib1
    attrib2
    attrib3
    attrib4
} 

假设一个bean实例说只需要,而另一个实例说需要所有四个属性。bean1attrib1attrib2bean2

让我们配置这两个豆子

<bean id="bean1" class="MyBean">
    <property name="attrib1" value="val1" />
    <property name="attrib2" value="val2" />
</bean>

<bean id="bean2" parent="bean1">
    <property name="attrib3" value="val3" />
    <property name="attrib4" value="val4" />
</bean>

请注意,只需要配置 和 。其他两个属性继承自bean2attrib3attrib4bean1

要回答您的问题:

是否需要指定两个弹簧才能实现继承?

不。如前所述,这与java继承不同。


答案 2

不。。。它们彼此之间没有关系。

父 bean 定义可以被视为其他 Bean 的模板形式(不必有任何关系)。想象一下,你有3个豆子,它们都共享/需要一个用户名/密码/url配置,然后你可以创建一个定义所有这些属性的父豆。这减少了您的配置工作(您不必复制所有 Bean 定义中的属性)。

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-child-bean-definitions 给出了一个很好的概述。


推荐