AHu*_*ist 5 java configuration spring dependency-injection
是否可以使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
applicationContext.xml包括:
<bean name="classA" class="a.b.c.ClassA">
<property name="nameIWantToOverride" ref="classB" />
</bean>
Run Code Online (Sandbox Code Playgroud)
如果classA有一个classB字段,但我希望它使用我在配置类中定义的ClassB,那可能吗?我试过切换订单,但没有帮助.似乎XML优先,因为当我运行实例化配置的简单测试时,它永远不会到达classB方法.如果我更改名称使其与xml文件中的bean不匹配,那么它确实到达了classB方法.
我已经看到了它可以以另一种方式工作的地方:Spring框架可以覆盖基于XML的配置的基于注释的配置吗?但是这个方向怎么样?由于这是更新的做事方式,我认为你能做到这一点.
我该怎么做才能解决这个问题?
编辑:使用XML更新.假设classA有多个字段,但我只想替换它.