我overrideBean
定义了一个现有的 bean spring.xml
,我想在其中使用注释覆盖。我尝试了以下方法来覆盖 bean:
@Configuration
@ImportResource({"/spring.xml"})
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DdwMain.class);
Object o = context.getBean("overrideBean");
// o should be null but it is not
}
@Bean(name="overrideBean")
public OverrideBean overrideBean() {
return null;
}
}
使用上面的代码,spring.xml
配置中的 bean 总是被实例化并由context.getBean
调用返回。
可以通过在其中包含另一个 XML 配置文件来覆盖 bean,@ImportResource
但是我希望找到使用注释的解决方案会更干净。