文章目录

  • Bean生命周期概述
  • Demo
  • finishBeanFactoryInitialization(beanFactory)
  • 核心流程


Bean生命周期概述

说到Spring Bean的生命周期,其实就是探究Spring Bean实例化经历哪些步骤了

本篇博文先给个整体的解读,下文将从源码上来探究Spring Bean的生命周期过程。


Demo

先跑通一个小demo





finishBeanFactoryInitialization(beanFactory)

前面几篇博文,我们细说了 invokeBeanFactoryPostProcessors(beanFactory);

主要是完成扫描,但bean并没实例化,什么时候实例化的呢?

继续跟跟看


看到了执行完finishBeanFactoryInitialization以后对象的构造方法被打印了,这里只能说明这个对象被实例化了,但是不是bean 对象也完成了实例化,这个就不好说了,但大概率是的,所以还需要进入到方法中继续跟进。

有一点需要明确:

Java对象不一定是bean, bean一定是一个java对象。 bean 受到spring的管理,有 自己的生命周期。


怎么能验证bean有么有被实例化呢?

ac.getBean(Bean1.class) 跟进去 , 知道找到

Object singletonObject = this.singletonObjects.get(beanName);
private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);

那就找 ,singletonObjects .重新debug


核心流程

接下来 从源码上分析这些流程

Spring5源码 - 06 Spring Bean 生命周期流程 概述 01相关推荐

  1. Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02

    文章目录 Pre 通俗流程 finishBeanFactoryInitialization Pre Spring5源码 - 06 Spring Bean 生命周期流程 概述 01 接上文 通俗流程 下 ...

  2. 跟着小马哥学系列之 Spring IoC(源码篇:Bean 生命周期)

    跟着小马哥学系列之 Spring IoC(源码篇:Bean 生命周期) 简介 Bean 元信息来源 Bean 元信息解析成 BeanDefinition 并注册 BeanDefinition 转变成 ...

  3. Spring Bean生命周期: Bean的实例化

    [Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...

  4. Spring Bean 生命周期之“我从哪里来”?懂得这个很重要

    Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...

  5. Spring Bean生命周期:Bean的初始化阶段

    [Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...

  6. Spring5源码 - 13 Spring事件监听机制_@EventListener源码解析

    文章目录 Pre 概览 开天辟地的时候初始化的处理器 @EventListener EventListenerMethodProcessor afterSingletonsInstantiated 小 ...

  7. Spring5源码 - 12 Spring事件监听机制_异步事件监听应用及源码解析

    文章目录 Pre 实现原理 应用 配置类 Event事件 事件监听 EventListener 发布事件 publishEvent 源码解析 (反推) Spring默认的事件广播器 SimpleApp ...

  8. Spring5源码 - 11 Spring事件监听机制_源码篇

    文章目录 pre 事件监听机制的实现原理[观察者模式] 事件 ApplicationEvent 事件监听者 ApplicationEvent 事件发布者 ApplicationEventMultica ...

  9. Spring Bean默认配置为单实例 Spring Bean生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...

最新文章

  1. caffe 的命令行训练与测试
  2. zookeeper在搭建的时候,解决后台启动为standalone模式问题
  3. python如何爬虫-如何使用python爬虫爬取要登陆的网站
  4. sharepoint 场帐号修改密码
  5. Hadoop sqoop从MySQL导入数据到HDFS
  6. SDWebImage源码阅读(九)SDWebImageDownloader
  7. linux 将远程mysql复制,在线备份MySQL及远程copy到远程备份服务器shell脚本
  8. HTML5中如何检查浏览器是否支持本地存储
  9. 包云岗:伯克利科研模式的启发
  10. 可靠性测试竟如此容易
  11. Java中循环删除list中元素的方法总结(总结)
  12. AcheGesture-开源免费的手势框架
  13. Nginx+Tomcat负载均衡群集
  14. Hibernate---简介
  15. 腾讯等技术大佬分享的高可用架构干货,全在这里了
  16. 实验四 数据选择器及其应用
  17. Linux多线程编程
  18. 笔记本开热点自动断开
  19. voc旋转标注数据转dota类型
  20. 看各路单词APP不顺手 索性自己写一个背单词系统

热门文章

  1. 创智播客微服务_【传智播客】JavaEE在职加薪课
  2. Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用
  3. First Week :Linux系统学习
  4. tf.reshape 和 tf.transpose 用法
  5. 金融量化alpha和beta值的意义
  6. tensorflow 进阶(四)---CNN
  7. python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...
  8. pytorch离线安装(探索尝试版本)
  9. 文巾解题 70. 爬楼梯
  10. 将tif文件转化为png文件 Python3