Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Spring@Configuration覆盖导入的资源?_Java_Spring_Configuration_Dependency Injection - Fatal编程技术网

Java 如何使用Spring@Configuration覆盖导入的资源?

Java 如何使用Spring@Configuration覆盖导入的资源?,java,spring,configuration,dependency-injection,Java,Spring,Configuration,Dependency Injection,是否可以使用Spring注释配置覆盖导入的资源 配置类: @Configuration @ImportResource({"classpath:applicationContext.xml"}) public class CoreConfiguration { @Resource(name = "classA") private ClassA classA; @Bean(name = "nameIWantToOverride") private ClassB

是否可以使用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");
    }

}
<bean name="classA" class="a.b.c.ClassA">
     <property name="nameIWantToOverride" ref="classB" />
</bean>
applicationContext.xml包括:

@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");
    }

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

如果classA有一个classB字段,但我希望它使用我在配置类中定义的classB,那么这可能吗?我试着改变顺序,但没用。XML似乎具有优先权,因为当我运行实例化配置的简单测试时,它从未到达classB方法。如果我更改了名称,使其与xml文件中的bean不匹配,那么它将到达classB方法

我已经看到了它的另一种工作方式:但是这个方向呢?因为这是一种新的做事方式,我想你可以做到这一点

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


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

不能使用注释覆盖SpringXML配置


SpringXML配置总是优先于注释配置

我真的不知道你在问什么。请详细说明,也许需要一些代码。@skaffman我更新了它。我想用注释配置覆盖XMLSpring配置。Sudhakar是正确的吗?这很糟糕:(我想我只需要用我的重写bean.Vanilla Java 1-0 Spring创建一个xml文件