@Resource和@Autowired的区别

本文对比了Spring框架中的@Autowired和Java原生@Resource注解在来源、查找顺序、参数支持和注入方式上的差异,以及在IDEA编译器中的不同反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)来源不同:@Autowired是Spring定义的注解,而@Resource是java定义的注解。
(2)依赖的查找顺序不同:依赖注入的功能,是通过在springIOC容器(单例池)中查找对象,再将对象引入到当前类中,而查找又分为两种实现:按名称查找(byName)查找和按类型(byType)查找:
@autowired是先按照类型查找,如果存在多个bean再根据名称(byName)进行查找。
@Resource是先按照name查找,如果查询不到,再按照type查找。
(3)支持的参数不同
@Autowired只支持设置一个required的参数,而@Resource支持七个参数。
(4)依赖注入方式不同
@Autowired支持:属性注入、构造方法注入和setter注入。
@Resource支持:属性注入和setter注入。

(5)编译器错误提示不同
使用idea在编写依赖注入的代码时,如果是注入的是mapper对象,那么使用@Autowired编译器会提示报错信息。如果使用@Resource则不会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值