背景说明:
由于Spring框架的官方文档没有明确对Bean的创建过程进行阶段划分,不同的书籍和技术类博客中对阶段的划分存在一定的差异。这里我将介绍结合B站学习自身总结的阶段,以及Spring官网上介绍的三个阶段
自己总结:
Bean的获取、Bean的创建、放入单例池
:
流程图说明:
具体流程说明可参考B站视频,链接如下
https://www.bilibili.com/video/BV1584y1r7n6/?spm_id_from=pageDriver&vd_source=4c8436735c701d65b255fccebb5eba9e
自于Spring官方认证的培训文档中的划分方式:
Bean的创建步骤可以划分为三个阶段,分别是:(1)加载并处理Bean的定义,(2)Bean的实例化和(3)Bean的初始化。
文字总结:
创建Bean大致可分成3个阶段,分别是 加载和处理Bean、实例化Bean 、初始化Bean。
1、加载Bean,Spring根据配置文件加载Bean ,根据BFPP对Bean进行处理扩展。
2、实例化Bean, 查找Bean之间的依赖关系,以此来确定实例化的顺序。实例化之后,再对字段进行依赖注入。
3、初始化Bean ,限制性一系列的BPP对象的postProcessBeforeInitialization方法;
然后执行Bean的自定义初始化方法;最后执行BPP的postProcessAfterInitialization方法。