为什么@Qualifier不允许上面的构造函数?

时间:2017-02-20 17:27:33

标签: java 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;
    }
}
参数中的@Qualifier工作..说下面的工作没问题

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

但是@Qualifier在上面的方法上运行得很好,为什么?

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

1 个答案:

答案 0 :(得分:1)

是的,对于构造函数,不能像其他方法那样使用@Qualifier@Qualifier仅可用于构造函数参数。 有关更多参考,请参见this