是否可以使用 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 有多个字段,但我只想替换一个。