首页 > 解决方案 > 我们可以在子构造函数javaspring中更改父bean的自动装配吗?

问题描述

我对 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(Name="y")。

带有 @Primary 注释的 Bean 似乎总是被应用,因为父级具有未指定限定符的自动装配,并且我在构造函数中收到的 bean 也是主要的,有没有办法让 bean @Qualifier("y") 与子类不修改父类?

标签: javaspringannotations

解决方案


不是您想要的方式,不 - 解决方案是停止使用@Primary并仅@Qualifier在任何地方使用 s 。或者您可以@Profile用于为不同的配置文件创建不同的 bean。但是每当你使用 @Primary 时,它就会成为主 bean,这就是注释的重点。


推荐阅读