• 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
  • 相关阅读:
    sqlite性能考量及使用(附可视化操作软件)
    上门预约按摩家政小程序开发;
    云安虚拟化应用性能监测系统—应用异常检测
    前端常用组件大全
    网络安全(黑客)—小白自学
    别低头,皇冠会掉;别流泪,贱人会笑。
    电视盒子解析安装包失败,安卓4.4安装不了kodi的解决方法,如何安装kodi
    七大排序算法——归并排序
    浅谈基于以太网的煤矿电力监控系统的设计与应用
    Pass cfg from cmd to test
  • 原文地址:https://blog.csdn.net/u012019209/article/details/124877186