@Resource和@Autowired的区别

6 篇文章 0 订阅

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)进行查找。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值