首页 > 编程语言 > 详细

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

时间:2020-07-25 22:08:09      阅读:106      评论:0      收藏:0      [点我收藏+]

之前真的只会用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就不知道用那个类来装配,从而报:

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type

那么我们这个时候就可以通过@Qualifier来指定具体使用哪一个。

而@Resource注解有如下属性

技术分享图片

你可以通过执行name属性来进行装配(bean里面的id或者name)或者通过type(类的类型)来进行装配。

如果@Resource既没有写name也没有写type,经测试先会进行name装配,如果name装配没有找到就会进行type装配。

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

原文:https://www.cnblogs.com/kangyu222/p/13377455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!