Spring启动流程
创始人
2024-01-29 07:46:59
0

Spring启动流程

按Bean状态描述:

  1. 创建Bean工厂
  2. 对Bean工厂后置处理
  3. 通过@Component和@Import扫描BeanDefinition,加入到Bean工厂
  4. 注册Bean后置处理器,用于拦截Bean创建
  5. 实例化
  6. 填充属性
  7. 初始化
    • 调用aware方法
    • BeanPostProcessor实例化前执行
    • 调用初始化方法
    • BeanPostProcessor实例化后执行
  8. 将Bean放到Bean工厂里

按方法描述:

准备阶段:

  • this()
    • 调用父类构造方法,获取Bean工厂,默认DefaultListableBeanFactory
    • 注册5个内置BeanDefinition
    • 设置哪些类生成的对象可以被Spring托管,默认是被@Component标记的类
    • 判断被Conditional注解标记的类能否被Spring托管
  • register(componentClasses) 注册componentClasses的BeanDefinition

刷新阶段refresh():

  • prepareRefresh 准备上下文
  • obtainFreshBeanFactory 获取Bean工厂
  • prepareBeanFactory Bean工厂初始化
  • postProcessBeanFactory 后置处理Bean工厂,空方法,扩展点
  • invokeBeanFactoryPostProcessors 执行BeanFactory的后置处理器。在这里
    • 扫描@Component那些BeanDefinition
    • 执行@Import的逻辑
  • registerBeanPostProcessors 注册Bean的后置处理器,用于拦截Bean的创建
  • initMessageSource 初始化消息源
  • initApplicationEventMulticaster 初始化事件派发器,用来发布事件
  • onRefresh 用来初始化一些特殊的Bean,目前默认是空方法,未实现
  • registerListeners 注册监听器
  • finishBeanFactoryInitialization 初始化所有剩余的单实例Bean(没有使用懒加载的Bean).整个Spring IOC的核心
  • finishRefresh 发布事件
    请添加图片描述

三级缓存

请添加图片描述

准备创建Bean

请添加图片描述

创建Bean的过程

请添加图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...