登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
@Resource 和 @Autowired 的区别
@Resource 和 @Autowired 的区别
[ 复制链接 ]
黎瑞芝
2025-6-1 18:59:24
1、来源不同
@Autowired:Spring 自身提供的注解,位于 org.springframework.beans.factory.annotation 包中。
@Resource:
Java标准
中的注解,位于 javax.annotation 包中。
2、注入方式不同
@Autowired:默认按照
类型(byType)
进行自动注入。它会在 Spring 容器中查找匹配的类型进行注入。如果存在多个相同类型的 Bean,可以结合 @Qualifier 注解或 @Primary 注解来指定具体的 Bean。
@Autowired
private UserService userService;
复制代码
@Resource:默认按照
名称(byName)
进行注入。它首先根据名称匹配 Bean,如果找不到匹配的名称,则按照
类型
进行匹配。@Resource 注解有两个重要的属性:name 和 type。如果指定了 name,则按照名称进行注入;如果未指定 name,则默认取变量名作为 Bean 的名称进行查找。
@Resource(name = "userServiceImpl")
private UserService userService;
复制代码
3、支持的参数不同
@Autowired:仅包含一个参数 required,表示是否必须注入,默认值为 true。如果将其设置为 false,则在无法找到匹配的 Bean 时,不会抛出异常。
@Autowired(required = false)
private UserService userService;
复制代码
@Resource:包含多个参数,其中最常用的是 name 和 type。name 用于指定要注入的 Bean 的名称,type 用于指定要注入的 Bean 的类型。
@Resource(name = "userService", type = UserService.class)
private UserService userService;
复制代码
目前在项目中一般使用 @Resource,因@Resource是Java标准中的注解,更契合些。我们在IDEA中使用@Autowired注解时,IDEA会在@Autowired下打个波浪线,给你说是不推荐的。
跟 @Resource 和 @Autowired 功能相似的注解
@Qualifier:当存在多个相同类型的 Bean 时,@Qualifier 可与 @Autowired 配合使用,指定具体注入的 Bean。
@Autowired
@Qualifier("specificUserService")
private UserService userService;
复制代码
@Primary:当存在多个相同类型的 Bean 时,可以在其中一个 Bean 上使用 @Primary 注解,标识其为主要的候选者,优先注入该 Bean。
@Primary
@Component
public class PrimaryUserServiceImpl implements UserService {
// 实现细节
}
复制代码
老早就想把这两个注解的区别记录下了。今天终于如愿以偿了。
有些人,你用言语劝告根本不起作用,必须让他亲身经历失败,他才会得到真知。-- 烟沙九洲
◀ ◀
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Resource
Autowired
区别
相关帖子
ARM-M与RISC-V(32bit)的区别--基于CM4与Nuclei_N300
聚集索引与非聚集索引的区别
Java中this()与super()的区别解析
抽象类VS接口:核心区别与实战选择
滑动时间窗口和固定时间窗口的区别
主键约束、唯一性约束、唯一性索引的区别
Spring AOP 与 Solon AOP 有什么区别?
linux系统目录和文件夹的区别
Spring @Component 和 @Bean 的区别与最佳实践
PostgreSQL三种关闭方式的区别
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
ARM-M与RISC-V(32bit)的区别--基于CM4与Nuclei_N300
0
771
龙玮奇
2025-07-24
业界
聚集索引与非聚集索引的区别
2
316
摹熹
2025-08-05
安全
Java中this()与super()的区别解析
0
999
言晓莉
2025-08-06
业界
抽象类VS接口:核心区别与实战选择
0
855
站竣凰
2025-08-08
科技
滑动时间窗口和固定时间窗口的区别
1
484
蜴间囝
2025-08-12
安全
主键约束、唯一性约束、唯一性索引的区别
1
120
宗和玉
2025-08-13
业界
Spring AOP 与 Solon AOP 有什么区别?
0
381
啤愿
2025-08-23
安全
linux系统目录和文件夹的区别
0
999
颖顿庐
2025-08-28
业界
Spring @Component 和 @Bean 的区别与最佳实践
0
1084
剧拧并
2025-08-29
业界
PostgreSQL三种关闭方式的区别
0
648
侧胥咽
2025-09-06
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
科技
签约作者
程序园优秀签约作者
发帖
黎瑞芝
2025-6-1 18:59:24
关注
0
粉丝关注
12
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994888
dage888
999994
3934307807
993690
4
富账慕
10007
5
柴古香
9992
6
匝抽
9986
7
孙淼淼
9989
8
筒濂
9977
9
凌彦慧
9985
10
崔瑜然
9984
查看更多