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
Spring Java配置-@Bean重写Bean定义不起作用_Java_Spring_Spring Mvc_Spring Java Config_Spring Bean - Fatal编程技术网

Spring Java配置-@Bean重写Bean定义不起作用

Spring Java配置-@Bean重写Bean定义不起作用,java,spring,spring-mvc,spring-java-config,spring-bean,Java,Spring,Spring Mvc,Spring Java Config,Spring Bean,我在项目a中有一个名为Customer的bean。在项目B中,我将项目a作为maven依赖项 在项目B的Java配置(@Configuration)中,我试图获得一个名为CustomerImpl的bean客户的新实现 @Bean public Customer customer() { return new CustomerImpl() } 顾客是这里的一个阶层 但我的上下文总是有Customer,而不是我想要的CustomerImpl 当我在上面的配置中放置@Qualifier并使用该限定符

我在项目a中有一个名为Customer的bean。在项目B中,我将项目a作为maven依赖项

在项目B的Java配置(@Configuration)中,我试图获得一个名为CustomerImpl的bean客户的新实现

@Bean
public Customer customer() {
return new CustomerImpl()
}

顾客是这里的一个阶层

但我的上下文总是有Customer,而不是我想要的CustomerImpl


当我在上面的配置中放置@Qualifier并使用该限定符名称而不是customer()时,它工作正常。但我不想指定限定符。

在您的评论中,您说customer是一个类

尝试将
customer()
方法中的返回类型定义为接口(例如ICCustomer),而不是类。让Customer和CustomerImpl实现该接口

@Bean
public ICustomer customer() {
return new CustomerImpl()
}

在你的评论中,你说客户是一个阶级

尝试将
customer()
方法中的返回类型定义为接口(例如ICCustomer),而不是类。让Customer和CustomerImpl实现该接口

@Bean
public ICustomer customer() {
return new CustomerImpl()
}

给这两个豆子起不同的名字

@Bean(name=customerImpl)
public Customer customerImpl() {
  return new CustomerImpl()
}
并使用名称获取所需的实例,例如

@Resource(name=customerImpl)
private Customer customer;

给这两个豆子起不同的名字

@Bean(name=customerImpl)
public Customer customerImpl() {
  return new CustomerImpl()
}
并使用名称获取所需的实例,例如

@Resource(name=customerImpl)
private Customer customer;

这个问题已经解决了。做了两个改变。添加了@Primary并给出了不同的方法名

@Primary
@Bean
public Customer newMethodName() {
return new CustomerImpl()
}

这个问题已经解决了。做了两个改变。添加了@Primary并给出了不同的方法名

@Primary
@Bean
public Customer newMethodName() {
return new CustomerImpl()
}

客户是一个类还是一个接口?这里的客户是一个类。这里的客户是一个类还是一个接口?这里的客户是一个类。您是指CustomerImpl as接口???@user2069929否,创建一个新接口(例如ICCustomer),并使Customer和CustomerImpl类实现该接口。然后更改customer方法以返回ICCustomer而不是customer。您是指CustomerImpl as接口???@user2069929否,创建一个新接口(例如ICCustomer),并使customer和CustomerImpl类实现该接口。然后更改customer方法以返回ICCustomer而不是customer。