Spring的启动过程

通常,我们说的Spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程。首先,Spring启动过程主要做了这么几件事情:

  1. 构造一个BeanFactory对象(DefaultListableBeanFactory)

  2. 解析配置类,得到BeanDefinition,并注册到BeanFactory中

i. 解析@ComponentScan,此时就会完成扫描

ii. 解析@Import

iii. 解析@Bean

iv. 解析其他配置信息

  1. 因为ApplicationContext还支持国际化,所以还需要初始化MessageSource对象

  2. 因为ApplicationContext还支持事件机制,所以还需要初始化ApplicationEventMulticaster对象

  3. 把用户定义的ApplicationListener对象添加到ApplicationContext中,等Spring启动完了就要发布事件了

  4. 创建非懒加载的单例Bean对象,并存在BeanFactory的单例池中。

  5. 调用Lifecycle Bean的start()方法

  6. 发布ContextRefreshedEvent事件

相关推荐
wangan0947 分钟前
不带圆圈的二叉树
java·前端·javascript
计算机毕设VX:Fegn089513 分钟前
计算机毕业设计|基于springboot + vue图书借阅管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
小马哥编程17 分钟前
【软考架构】滑动窗口限流算法的原理是什么?
java·开发语言·架构
疯狂的程序猴19 分钟前
IPA 深度混淆是什么意思?分析其与普通混淆的区别
后端
cci22 分钟前
Remote ssh无法连接?
后端
JohnYan32 分钟前
Bun技术评估 - 22 Stream
javascript·后端·bun
饕餮争锋35 分钟前
Spring AOP原理简析
java·spring
okseekw44 分钟前
Maven从入门到实战:核心概念+配置详解+避坑指南
java·后端
该用户已不存在1 小时前
Node.js后端开发必不可少的7个核心库
javascript·后端·node.js
踏浪无痕1 小时前
计算机算钱为什么会算错?怎么解决?
后端·算法·面试