spring注解@Autowired、@Qualifier、@Resource区别

之前真的只会用Autowired注解,其他两个从来没有用过,只是在面试的经常被问及。

参考:

https://www.cnblogs.com/think-in-java/p/5474740.html
https://www.w3cschool.cn/wkspring/43851h9t.html

@Autowired和@Qualifier属于spring注解,而@Resource属于Spring JSR-250注释,因为spring内部支持JSR,因此spring也支持@Resource。

其中工作里经常用@Autowired,@Qualifier偶尔需要用,@Resource基本不用。

我们知道spring的自动装配可以通过byType和byName的, @Autowired是按照byType来匹配的.

当一个类有多个定义的时候,如果我们通过@Autowired来装配的话,spring就不知道用那个类来装配,从而报:
public void setName(String name) {
this.name = name;
}

public String getName() {
    return name;
}

public void spellCheck() {
    spellChecker.checkSpelling();
}

那么我们这个时候就可以通过@Qualifier来指定具体使用哪一个,看我写的如下代码


猜你喜欢

转载自www.cnblogs.com/kangyu222/p/13377455.html