简述@Autowired和@Resource的区别(通俗易懂)

本文详细探讨了@Autowired和@Resource在Spring中的区别。结论指出,@Autowired默认按类型注入,而@Resource默认按名称注入。当存在多个实现类时,两者都需要指定Bean名称。文章通过一个简单的springboot项目案例,展示了不同注入方式的效果,包括@Autowired配合@Qualifier和@Resource使用name属性的情况。

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

前言:在日常的开发项目当中,这两个注解是经常会用到的,但是在实际使用当中好像使用起来并没有多大区别,这里我就对这两个注解进行一个详细的区别总结,通过一个完整的典型例子进行论证,思路清晰明了。

目录

一、结论

二、典型案例

2.1、准备代码

2.2、使用@Autowired默认进行注入

2.3、使用@Autowired+@Qualifier进行注入

2.4、使用@Resource默认进行注入

2.5、使用@Resource指定名称进行注入

三、结语


一、结论

先说结论:

1、@Autowired默认是根据类型(ByType)注入的,@Resource默认是根据名称(ByName)注入的。

2、@Autowired是Spring提供的注解,@Resource是JDK提供的注解

3、当一个接口存在多个实现类,@Autowired和@Resource都是需要指定Bean的名称才能完成注入,@Autowired可通过@Qualifier来只能Bean的名称进行注入,@Resource则可通过name来完成Bean的注入。

二、典型案例

这里我搭建了一个简单的springboot项目,并写了一个接口和其对应的两个实现类,来具体通过代码来证明以上的结论。

2.1、准备代码

UserService接口:


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄团团

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值