栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

@Resource和@Autowired的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

@Resource和@Autowired的区别

j记得之前有道面试题问的这个,当时不清楚,现在稍微学了下spring底层,然后做一个记录吧。
共同点:
两者都可以进行依赖注入,而且效率上也都不多,并没有优劣之分吧

不同点:
1.@Resource是Java提供的注解但spring支持这个注解,@Autowired是spring提供的注解

2.
@Autowried只有一个属性,requried,是否是必须的,默认是true,为true的情况下找不到这个注入的bean会报错。进行依赖注入的时候@Autowired是先根据类型(ByType)在spring容器中查找bean,找到多个的话再根据名字(ByName)进行查找。
这里想直接注入指定Bean名称的话,需要配合使用@Qualifier注解
如果一个类型有多个bean的话,也可以通过@Primary注解注入加了该注解的bean,或者通过@Priority注解来设置优先级,选优先级最高的进行注入。


可以看出@Resource注解中有一个name和type的属性,可以指定注入对象的名称和类型。如果这里指定了名称,则只会根据名称去找bean,找不到的是会报错的。如果没有指定,则跟上面的一致,先根据类型(ByType)在spring容器中查找bean,找到多个的话再根据名字(ByName)进行查找。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号