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事件

相关推荐
wangbing11255 分钟前
JPA下自定义主键
java·linux·服务器
扎Zn了老Fe27 分钟前
MyBatis-Plus必知必会:告别低效CRUD,高效开发持久层
后端·mybatis
用户4603812919432 分钟前
终于知道AQS是啥东西了
后端
plainGeekDev1 小时前
NullPointerException → Kotlin 空安全
android·java·kotlin
想做小南娘,发现自己是女生喵2 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
神奇小汤圆2 小时前
SpringBoot 相关的 Skills 全景指南
后端
神奇小汤圆3 小时前
高性能进程内队列 BufferQueue 1.0 版本发布
后端
CHANG_THE_WORLD3 小时前
6.多线程的TCP通信
java·网络·tcp/ip
爸爸6193 小时前
空数据状态与引导:多维度 UI 提示设计
后端
Reart4 小时前
Leetcode 674.最长连续递增序列 (719)
后端·算法