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

相关推荐
考虑考虑15 分钟前
go使用gorilla/websocket实现websocket
后端·程序员·go
李少兄26 分钟前
解决Spring Boot多模块自动配置失效问题
java·spring boot·后端
bxlj_jcj1 小时前
JVM性能优化之年轻代参数设置
java·性能优化
八股文领域大手子1 小时前
深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
java·数据库·算法·缓存·mybatis·哈希算法
不当菜虚困1 小时前
JAVA设计模式——(八)单例模式
java·单例模式·设计模式
Piper蛋窝1 小时前
Go 1.19 相比 Go 1.18 有哪些值得注意的改动?
后端
m0_740154671 小时前
Maven概述
java·maven
码农BookSea1 小时前
不用Mockito写单元测试?你可能在浪费一半时间
后端·单元测试
吗喽对你问好2 小时前
Java位运算符大全
java·开发语言·位运算
Java致死2 小时前
工厂设计模式
java·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式