【发布时间】:2012-05-19 01:52:42
【问题描述】:
是否可以使用 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 方法。
我已经看到它可以在哪里工作:Can spring framework override Annotation-based configuration with XML-based configuration? 但是这个方向呢?由于这是较新的做事方式,我认为您可以做到这一点。
我能做些什么来解决这个问题?
编辑:用 XML 更新。假设 classA 有多个字段,但我只想替换一个。
【问题讨论】:
-
我真的不知道你在问什么。请详细说明,也许用一些代码。
-
@skaffman 我更新了它。我想用注释配置覆盖 xml spring 配置。 Sudhakar 是否正确?
标签: java spring configuration dependency-injection