6

是否可以使用 Spring 注释配置覆盖导入的资源?

配置类:

@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class CoreConfiguration {

    @Resource(name = "classA")
    private ClassA classA;

    @Bean(name = "nameIWantToOverride")
    private ClassB classB() {
       return new ClassB("different setting");
    }

}

applicationContext.xml 包括:

<bean name="classA" class="a.b.c.ClassA">
     <property name="nameIWantToOverride" ref="classB" />
</bean>

如果 classA 有一个 classB 字段,但我希望它使用我在配置类中定义的 ClassB,这可能吗?我尝试切换顺序,但没有帮助。似乎 XML 优先,因为当我运行一个简单的实例化配置测试时,它永远不会到达 classB 方法。如果我更改名称使其与 xml 文件中的 bean 不匹配,那么它确实会到达 classB 方法。

我已经看到它在哪里可以以其他方式工作:Spring 框架可以用基于 XML 的配置覆盖基于注释的配置吗?但是这个方向呢?由于这是较新的做事方式,我认为您可以做到这一点。

我能做些什么来解决这个问题?

编辑:用 XML 更新。假设 classA 有多个字段,但我只想替换一个。

4

1 回答 1

6

您不能使用注释覆盖 spring xml 配置。

Spring XML 配置总是优先于注解配置

于 2012-05-10T14:42:52.753 回答