是否可以覆盖/替换父抽象 bean?
例如: 第一个 xml:
<bean id="inheritedTestBean" abstract="true" class="org.springframework.beans.TestBean">
</bean>
<bean id="inheritsWithDifferentClass" class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBean">
</bean>
第二个 xml
<bean id="inheritedTestBean2" abstract="true" class="org.springframework.beans.TestBean2">
</bean>
<alias name="inheritedTestBean2" alias="inheritedTestBean" />
TestBean2继承了TestBean。
最佳答案
任何给定的 Spring 上下文对于任何给定的 ID 或名称只能有一个 bean。对于 XML id 属性,这是由模式验证强制执行的。在 name 属性的情况下,这是由 Spring 的逻辑强制执行的。
但是,如果一个上下文是由两个不同的 XML 描述 rune 件构建的,并且两个文件都使用一个 id,那么一个将“覆盖”另一个。确切的行为取决于上下文加载文件时文件的顺序。
因此,尽管可能,但不推荐这样做。它容易出错且脆弱,如果您更改其中一个的 ID 但不更改另一个,您将无法从 Spring 获得任何帮助。
关于java - Spring:覆盖父bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835131/