• Spring getBean流程


    Bean的生命周期(创建Bean的流程)

    简单来说,Bean的生命周期只有四个阶段:实例化 Instantiation --> 属性赋值 Populate --> 初始化 Initialization --> 销毁 Destruction。

    在这里插入图片描述
    getBean方法是spring ioc的核心,阅读getBean方法的源码也是理解spring容器工作原理所必须要做的事情!

    我们先来看一下getBean方法,getBean的具体实现逻辑在AbstractBeanFactory类里面的doGetBean方法中。

    首先简略地介绍一下整体的执行流程:

    1.根据传入beanName获取bean的别名

    2.尝试从缓存中获取之前被实例化过了的单例bean

    3.根据上面获取到的实例进一步获取bean(因为获取到的可能是一个工厂bean)

    4.如果上面的步骤之后没有获取到bean那么就需要创建bean了

    5.先根据缓存判断一下当前的bean是否正在被创建,如果是的话表示依赖循环了

    6.尝试获取当前工厂的父工厂并从当前工厂的bean定义缓存中获取bean定义委托父工厂去生成

    7.如果当前要获取的bean只是为了进行类型检查就标记bean已经被创建

    8.同当前bean的父类合并bean的定义,并检查获取到的bean定义是不是抽象的

    9.通过上面获取到的bean定义找到当前bean的依赖bean并递归调用getBean方法获取依赖bean

    10.判断bean的scope是单例的还是原型的或者是其他的创建bean

    11.根据要求返回的bean类型通过convertService来对bean进行转换
    ————————————————
    版权声明:本文为CSDN博主「完美的工程学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/dcx5173/article/details/118344056

    • 参考
    • https://blog.csdn.net/dcx5173/article/details/118344056?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-118344056-blog-120083309.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-118344056-blog-120083309.pc_relevant_aa&utm_relevant_index=2
    • https://blog.csdn.net/zhang_qing_yun/article/details/120083309
  • 相关阅读:
    NR CSI(二) the workflow of CSI report
    副高级职称的要求真的很难达到吗?
    hadoop上传和下载文件过程【博学谷学习记录】
    package ‘XXXX’ is not available (for R version 3.6.0) 解决R版本适配的问题
    技术管理进阶——总监以上一定要会经济学
    【基于能量的模型】
    00 后搞视频号月入过万,怎么做?
    QMC5883L-磁力计椭球拟合校准
    Mysql 5.7 新特性之 json 类型的增删改查
    3D Object Detection Essay Reading 2024.04.05
  • 原文地址:https://blog.csdn.net/u012019209/article/details/124877186