为什么@Qualifier不允许在构造函数之上?

2022-09-04 22:40:01

我正在学习弹簧,但当我在下面尝试它不起作用,但在构造器的地方,当我使用方法时,它的工作原理为什么?这背后有什么具体的原因吗?我的问题是,为什么弹簧设计师决定不允许@Qualifier构造函数以上而是高于方法?

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

public class Employee {
    private Company comp;
    @Autowired
    @Qualifier(value="beanId")
    private Employee(Company comp) {
        this.comp=comp;
    }
    public Company getComp() {
        return comp;
    }
}

参数中的@Qualifier有效。说下面工作没关系

private Employee(@Qualifier(value="beanId") Company comp) {
        this.comp=comp;
}

但是@Qualifier像下面这样的方法工作得很好,为什么?

@Qualifier(value="beanId")
private void getEmpDetails(Company comp) {
        this.comp=comp;
}

答案 1

对于构造函数,不能使用,因为您将其用于其他方法。
批注只能用于构造函数参数@Qualifier@Qualifier

有关更多参考,请参阅此官方文章


答案 2

推荐