@Resource和@Autowired的区别

<一> 区别
(1). 来源不同
@Autowired是spring定义的注解
@Resource是java定义的注解

(2). 依赖查找顺序不同
依赖注入的功能,都是通过先在springIOC容器中查找对象 (
@Autowired
private Test test; // test就是查找的对象
),再将对象引入到当前类中。

@Autowired与@Resource都是通过对象的类型type和名称name进行查找,但是二者查找的顺序不同。

@Autowired—先通过类型type查找,如果存在多个同类型的bean,再通过名称进行查找。
@Resource—先安装名称进行查找,如果名称不存在,再安装类型查找。

(3). 支持的参数不同
点两者的源码,可以看见@Resource支持7种参数(name,type等), @Autowired仅支持一个参数required(是否必须)

(4)两者依赖注入的支持不同
@Resource 只支持属性注入和 Setter 注入,不支持构造方法注入
@Autowired 支持属性注入、 Setter 注入、构造方法注入

(5)编译器提示不同
ideal环境下,如果使用@Autowired注入Mapper文件,会报错,
修改为@Resource即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值