java - Spring:覆盖父bean

标签 java spring

是否可以覆盖/替换父抽象 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/

相关文章:

java - 用 Java 读取渐进式编码的 9000x9000 JPEG 需要 1 分钟

java - 关于从 servlet 提供静态文件的问题

Java Spring Swagger 启动时启动行为

java - Spring Boot 多模块 Gradle 构建 - 多个 "Fat Jars"

java - 使用Netty(http客户端)限制HTTP持久连接每秒的事务数

c# - 对应C# Control.SuspendLayout/ResumeLayout的swing方法

java - 是否有一个未弃用的默认类级别注释,默认情况下指定非空返回值

java - 具有 Web 应用程序上下文的 Spring 上下文层次结构

Spring Boot 错误相关

spring - 嵌套类中的配置属性