在spring项目中,@Resource private ListIGoodsActuator goodsActuators , goodsActuators 是 什么时候初始化的

news/2025/11/11 9:06:51/文章来源:https://www.cnblogs.com/czzz/p/19208930

在 Spring 项目中,当你这样声明:

@Resource
private List<IGoodsActuator> goodsActuators;

这个 goodsActuators 字段的初始化(即注入)发生在 Spring 容器创建该 Bean 的依赖注入阶段(population phase),具体来说是在 Bean 实例化之后、初始化回调(如 @PostConstruct)之前


📌 详细时机说明(Bean 生命周期视角)

假设你有一个被 Spring 管理的组件类:

@Service
public class GoodsService {@Resourceprivate List<IGoodsActuator> goodsActuators;@PostConstructpublic void init() {// 此时 goodsActuators 已经被注入System.out.println("Size: " + goodsActuators.size());}
}

Spring 创建 GoodsService Bean 的流程如下:

  1. 实例化:调用 GoodsService 的构造函数,创建对象(此时字段仍为 null)。
  2. 依赖注入(DI)
    • Spring 扫描所有字段和 setter 方法;
    • 发现 @Resource private List<IGoodsActuator> goodsActuators
    • 查找容器中所有类型为 IGoodsActuator 的 Bean(包括其实现类,如 DiscountActuator, StockActuator 等);
    • 将这些 Bean 组装成一个 List,并注入到 goodsActuators 字段中。
  3. 初始化回调
    • 调用 @PostConstruct 标注的方法(如 init());
    • 此时 goodsActuators 已经完成注入,可以安全使用

✅ 因此:goodsActuators@PostConstruct 方法执行前就已经初始化完毕。


🔍 关键行为细节

1. 自动收集所有匹配的 Bean

Spring 对 List<T> 类型的注入有特殊处理:

  • 不管你用的是 @Resource 还是 @Autowired
  • 只要字段类型是 List<SomeInterface>
  • Spring 就会自动将容器中 所有实现了 SomeInterface 的 Bean 注入到该列表中。

⚠️ 注意:虽然 @Resource 按 JSR-250 规范本应“按名称注入”,但 Spring 对集合类型(List/Map)做了扩展,此时它会忽略名称,转而按类型收集所有匹配 Bean。

2. 空列表而非 null

  • 如果没有 IGoodsActuator 的实现类被注册为 Bean,goodsActuators 会被注入为一个 空的 ArrayList不会是 null
  • 这避免了空指针异常(NPE),是 Spring 的安全设计。

3. 顺序可控

  • 默认顺序是 Bean 的注册顺序;
  • 可通过 @Order 注解或实现 Ordered 接口控制执行顺序:
    @Component
    @Order(1)
    public class FirstActuator implements IGoodsActuator { ... }
    

✅ 验证示例

@Component
public class A implements IGoodsActuator { }@Component
public class B implements IGoodsActuator { }@Service
public class MyService {@Resourceprivate List<IGoodsActuator> goodsActuators; // 包含 A 和 B@PostConstructpublic void check() {// 输出:2System.out.println(goodsActuators.size());}
}

🆚 与 @Autowired 的区别?

对于 List<T> 注入,在 Spring 中 @Resource@Autowired 行为几乎一致

@Autowired
private List<IGoodsActuator> goodsActuators; // 效果相同

因为 Spring 在解析集合类型时,会统一走“按类型收集所有 Bean”的逻辑,不再区分注解语义。


✅ 总结

问题 答案
何时初始化? 在当前 Bean 的 依赖注入阶段,早于 @PostConstruct
注入内容? 容器中所有 IGoodsActuator 类型的 Bean(实现类)。
为空怎么办? 注入空 List,永不为 null
顺序是否确定? 默认按注册顺序,可用 @Order 控制。
@Resource 是否按名注入? ❌ 对 List<T>,Spring 忽略名称,按类型自动收集。

💡 最佳实践:在 @PostConstruct 或业务方法中使用 goodsActuators 是安全的,无需判空(除非业务逻辑需要)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年口碑好的绢云母粉厂家最新推荐排行榜

2025年口碑好的绢云母粉厂家最新推荐排行榜行业背景与市场趋势绢云母作为一种重要的工业矿物原料,近年来在涂料、橡胶、塑料、化妆品等领域的应用持续扩大。根据中国非金属矿工业协会最新数据显示,2024年我国绢云母市…

java-基础-内存查看

------------------------------------------------------------------------------------------------------------java jmap dump 服务器文件本地如何查看要查看通过 jmap 导出的服务器堆转储文件(.hprof 格式),可…

2025年比较好的船用加热管厂家最新权威实力榜

2025年比较好的船用加热管厂家最新权威实力榜行业背景与市场趋势随着全球航运业的持续发展和船舶工业的技术升级,船用加热管作为船舶关键配套设备之一,其市场需求呈现稳定增长态势。据国际海事研究机构Statista最新数…

2025年家用交流稳压器权威推荐榜单:三相稳压器/隧道稳压器/机床稳压器源头厂家精选

市场数据预测,2025年全球家用开关式稳压器市场规模将达195百万美元,未来几年将保持8.4%的年复合增长率。 在电力需求日益增长的今天,家用交流稳压器已成为保障家庭电器安全运行的必备设备。无论是应对电压不稳的农村…

2025年知名的矿车厂家推荐及选择指南

2025年知名的矿车厂家推荐及选择指南行业背景与市场趋势随着全球矿业资源需求的持续增长,矿车作为矿山运输的核心设备,其市场规模呈现稳定上升态势。根据《2024-2025全球矿业装备市场报告》显示,2023年全球矿车市场…

剑指offer-36、两个链表的第⼀个公共节点

题⽬描述 输⼊两个链表,找出它们的第⼀个公共结点。(注意因为传⼊数据是链表,所以错误测试数据的提示是⽤其他⽅式显示的,保证传⼊数据是正确的) 思路及解答 HashSet包含法 第⼀种做法,直接依赖于 HashSet ,遍历…

回归与分类算法全解析:从理论到实践 - 实践

回归与分类算法全解析:从理论到实践 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

2025年知名的VR工厂远程云参观用户满意度榜单

2025年知名的VR工厂远程云参观用户满意度榜单行业背景与市场趋势随着全球数字化转型浪潮的推进,虚拟现实(VR)技术在工业领域的应用正迎来爆发式增长。根据IDC最新发布的《全球增强与虚拟现实支出指南》显示,2025年全…

2025年靠谱的日本公共交通票价查询方式通票购买指南榜

2025年靠谱的日本公共交通票价查询方式与通票购买指南榜日本公共交通市场现状与发展趋势日本作为全球公共交通系统最发达的国家之一,其轨道交通网络覆盖率达98.3%,每日运送旅客超过4000万人次(日本国土交通省2024年…

2025年评价高的打浆机折叠款行业内口碑厂家排行榜

2025年评价高的打浆机折叠款行业内口碑厂家排行榜行业背景与市场趋势随着农业机械化水平的不断提升,打浆机作为水田耕作的重要设备,市场需求持续增长。据中国农业机械工业协会最新数据显示,2024年我国打浆机市场规模…

2025年靠谱的视频号短视频推广热门推荐榜单

2025年靠谱的视频号短视频推广热门推荐榜单行业背景与市场趋势随着移动互联网的深度发展和5G技术的全面普及,短视频行业在2025年迎来了新一轮的增长高峰。根据最新发布的《2025中国短视频行业发展白皮书》显示,中国短…

2025年稳压器厂家权威推荐榜单:家用稳压器/电梯稳压器/机床稳压器源头厂家精选

在电力设备领域,稳压器作为保障电压稳定、确保设备安全运行的关键设备,其性能质量直接关系到工业生产系统的稳定性。本文将根据技术实力、产品性能和市场反馈,为您推荐三家在稳压器领域表现卓越的源头厂家。 随着工…

2025年知名的大阪机场接送舒适便捷权威榜

2025年知名的大阪机场接送舒适便捷权威榜行业背景与市场趋势随着全球旅游业的持续复苏,日本作为亚洲热门旅游目的地,2024年接待国际游客数量已突破4000万人次,其中大阪关西国际机场作为西日本重要枢纽,年旅客吞吐量…

文件上传大小限制

select * From posts where content like %ccaa.51cema% update posts set content=REPLACE(content,ccaa,xue) where content like %ccaa.51cema% select * from posts where content like %http://127.0.0.1:9998/st…

2025年热门的不锈钢线条TOP品牌厂家排行榜

2025年热门的不锈钢线条TOP品牌厂家排行榜行业背景与市场趋势不锈钢线条作为现代建筑装饰和家居设计的重要元素,近年来市场需求持续增长。根据中国金属材料流通协会最新数据显示,2024年中国不锈钢线条市场规模已达87…

详细介绍:机器人 / 仿生 / 机械人身化 AI(Embodied AI) ——制造业智能化转型的关键引擎

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年口碑好的不锈钢压花最新TOP厂家排名

2025年口碑好的不锈钢压花最新TOP厂家排名行业背景与市场趋势不锈钢压花制品作为现代家居和工业应用中的重要材料,近年来市场需求持续增长。根据中国金属制品行业协会2024年发布的报告显示,全球不锈钢压花市场规模已…

Python3 sys模块和os模块的区别是什么?

Python3 sys模块和os模块的区别是什么?在 Python 中,sys模块和os模块都是与系统交互的核心工具,但它们的定位和功能边界有显著区别:sys模块聚焦于 Python 解释器本身的交互,而os模块专注于操作系统层面的操作。以…

2025年11月数控加工中心推荐:知名厂家排行榜与口碑评价对比指南

一、引言 2025年四季度,国内高端装备采购进入年度冲刺阶段,数控加工中心作为汽车、航空航天、模具等精密制造环节的核心设备,其选型决策直接决定产线良率与资金效率。面对“交期紧、精度高、售后响应快”的三重需求…

Redis终极面试题:从基础到原理,从概念到实战的10道“必杀题”

面试题切记贪多,十道必会Redis面试题,都搞懂就够了~ Redis作为内存数据库的标杆,是后端工程师面试的“必考题”。本文从基础概念→数据结构→持久化→分布式→高级特性→生产实践,整理了10道最具代表性的Redis终极…