我在Spring中的注释有问题。我似乎无法用@Qualifier注释更新对象。让我们对我的问题做一个简化版本:
假设我有一个像这样的java父类:
public class test {
@Autowired
protected object x;
}
一个子类使用类似这样的构造函数扩展父类:
public class testChild extends test {
@Autowired
public testChild(@Qualifier("y") Object y) {
this.x = y;
}
和2个Bean,一个带有@Primary注释,另一个带有@Bean(名称="y"(。
带有@Primary注释的Bean似乎总是被应用的,因为父类指定了autowired without限定符,而我在构造函数中接收的Bean也是主类,有没有一种方法可以在不修改父类的情况下获得带有子类的Bean@qualifier("y"(?
不是您想要的方式,没有解决方案是停止使用@Primary
,而只在任何地方使用@Qualifier
。或者,您可以使用@Profile
为不同的概要文件创建不同的bean。但每当您使用@Primary时,它就变成了primarybean,这就是注释的意义所在。