我们可以在子构造函数javaspring中更改父bean的autowired吗



我在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,这就是注释的意义所在。

最新更新