我开始研究 Spring 文档。我遇到了parent
属性解释,使用parent
在两个bean之间使用属性是否等同于这些类之间的继承关系?
如果是这样,如何执行方法覆盖?我还看到在某些情况下,parent
在 XML 配置文件中使用属性和extends
在 bean 类中使用关键字。是否需要指定两个弹簧才能实现继承?
parent
in bean 配置表示configuration inheritance
与 Java 继承无关。configuration inheritance
您消除重复的 XML 代码时,它可以节省大量代码。例如,您有以下具有属性的 bean
Class MyBean {
attrib1
attrib2
attrib3
attrib4
}
说一个 bean 实例说bean1
只是需要attrib1
,attrib2
而另一个说bean2
实例需要所有四个属性。
让我们配置这两个 bean
<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>
请注意,bean2
只需要配置attrib3
和attrib4
. 其他两个属性继承自bean1
要回答您的问题:
是否需要指定两个弹簧才能实现继承?
不,如前所述,这与 java 继承不同。
不...它们彼此没有关系。
父 bean 定义可以被认为是其他 bean 的模板形式(它们不必有任何关系)。想象一下,您有 3 个 bean,它们都共享/需要用户名/密码/url 配置,然后您可以创建一个定义所有这些属性的父 bean。这减少了您的配置工作(您不必在所有 bean 定义中复制属性)。