Spring框架中 @Autowired 和 @Resource 注解的区别
发布时间 - 2026-01-10 23:25:14 点击率:次Spring框架中 @Autowired 和 @Resource 注解的区别

在 spring 框架中,除了使用其特有的注解外,使用基于 JSR-250 的注解,它包括 @PostConstruct, @PreDestroy 和 @Resource 注释。
首先,咱们简单了解 @PostConstruct 和 @PreDestroy 注释:
为了定义一个 bean 的安装和卸载,我们可以使用 init-method 和 destroy-method 参数简单的声明一下 ,其中 init-method 属性指定了一个方法,该方法在 bean 的实例化阶段会立即被调用;同样地,destroy-method 指定了一个方法,该方法只在一个 bean 从容器中删除之前被调用。
因此,咱们可以使用 @PostConstruct 注解作为初始化回调函数的一个替代,使用 @PreDestroy 注解作为销毁回调函数的一个替代。
接下来,咱们着重讲解一下 @Resource,以及其与 Spring 特有的 @Autowired注解的区别。
注解 @Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,而 @Resource 则默认按 byName 自动注入。@Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注解的 name 属性解析为 bean 的名字,而 type 属性则解析为 bean 的类型。因此,如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。
注解 @Resource 的装配顺序:
1. 如果同时指定了 name 和 type,则从 Spring 上下文中找到唯一匹配的 bean 进行装配,找不到则抛出异常;
2. 如果指定了 name,则从上下文中查找名称(id)匹配的 bean 进行装配,找不到则抛出异常;
3. 如果指定了 type,则从上下文中找到类型匹配的唯一 bean 进行装配,找不到或者找到多个,都会抛出异常;
4. 如果既没有指定 name,又没有指定 type,则自动按照 byName 方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配成功,则进行自动装配。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# @Autowired
# 和
# @Resource
# 注解的区别
# Spring
# 注解
# 详解Java的Spring框架中的注解的用法
# 详解Spring框架注解扫描开启之配置细节
# spring框架下@value注解属性static无法获取值问题
# Spring框架学习常用注解汇总
# Spring框架基于注解开发CRUD详解
# Spring Boot框架中的@Conditional注解示例详解
# Spring框架中的重要注解及其应用代码实例
# 找不到
# 抛出
# 可以使用
# 特有的
# 回调
# 也不
# 中找到
# 多个
# 希望能
# 如果没有
# 只在
# 谢谢大家
# 又没
# 既不
# 时则
# 器中
# 只不过
# 有两个
# init
# bean
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建支持数据库操作的智能建站平台?
JavaScript模板引擎Template.js使用详解
微信公众帐号开发教程之图文消息全攻略
智能起名网站制作软件有哪些,制作logo的软件?
b2c电商网站制作流程,b2c水平综合的电商平台?
Laravel如何使用Collections进行数据处理?(实用方法示例)
如何用y主机助手快速搭建网站?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
,在苏州找工作,上哪个网站比较好?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
Python文件操作最佳实践_稳定性说明【指导】
Python进程池调度策略_任务分发说明【指导】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
python中快速进行多个字符替换的方法小结
浅谈javascript alert和confirm的美化
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
JavaScript如何实现倒计时_时间函数如何精确控制
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
Android使用GridView实现日历的简单功能
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
如何在万网主机上快速搭建网站?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
千库网官网入口推荐 千库网设计创意平台入口
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
如何在橙子建站中快速调整背景颜色?
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
高防服务器如何保障网站安全无虞?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
BootStrap整体框架之基础布局组件
如何续费美橙建站之星域名及服务?
网站制作企业,网站的banner和导航栏是指什么?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel中的Facade(门面)到底是什么原理
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
canvas 画布在主流浏览器中的尺寸限制详细介绍
制作电商网页,电商供应链怎么做?
如何在阿里云高效完成企业建站全流程?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】

