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

相关推荐
程序猿零零漆几秒前
Spring之旅 - 记录学习 Spring 框架的过程和经验(十二)Spring整合web环境
学习·spring
隐退山林2 分钟前
JavaEE:多线程初阶(一)
java·开发语言·jvm
最贪吃的虎8 分钟前
Redis其实并不是线程安全的
java·开发语言·数据库·redis·后端·缓存·lua
一勺菠萝丶11 分钟前
Java 后端想学 Vue,又想写浏览器插件?
java·前端·vue.js
xie_pin_an11 分钟前
C++ 类和对象全解析:从基础语法到高级特性
java·jvm·c++
武子康12 分钟前
大数据-208 岭回归与Lasso回归:区别、应用与选择指南
大数据·后端·机器学习
Tao____13 分钟前
企业级物联网平台
java·网络·物联网·mqtt·网络协议
山峰哥15 分钟前
数据库工程与SQL调优实战:从原理到案例的深度解析
java·数据库·sql·oracle·性能优化·编辑器
kaico201816 分钟前
远程调用组件openfeign
java·spring cloud
SunnyDays101116 分钟前
如何使用 JAVA 将 PDF 转换为 PPT:完整指南
java·开发语言·pdf转ppt