登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
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 {
// 实现细节
}
复制代码
老早就想把这两个注解的区别记录下了。今天终于如愿以偿了。
有些人,你用言语劝告根本不起作用,必须让他亲身经历失败,他才会得到真知。-- 烟沙九洲
◀ ◀
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
黎瑞芝
2025-6-1 18:59:24
关注
0
粉丝关注
5
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
凶契帽
9990
黎瑞芝
9990
4
杭环
9988
5
猷咎
9988
6
鲫疹
9988
7
接快背
9988
8
里豳朝
9988
9
处匈跑
9988
10
氛疵
9988
查看更多