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

PAN*_*BEY 11 java spring

我正在学习 spring 但是当我在下面尝试时它不起作用但是在我使用方法时在构造函数的位置然后它为什么起作用?背后有什么具体原因吗?我的问题是为什么 spring 设计师决定不允许 @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;
    }
}
Run Code Online (Sandbox Code Playgroud)

参数中的@Qualifier 有效.. 在下面说有效

private Employee(@Qualifier(value="beanId") Company comp) {
        this.comp=comp;
}
Run Code Online (Sandbox Code Playgroud)

但是@Qualifier 在上面的方法上工作正常,如下所示为什么?

@Qualifier(value="beanId")
private void getEmpDetails(Company comp) {
        this.comp=comp;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

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

请参阅此官方文章以获取更多参考。