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

相关推荐
SamDeepThinking2 分钟前
CyclicBarrier的底层实现
java·后端·面试
god_cvz2 分钟前
第二章:6、对话记忆与引用标注
后端·ai编程
拖孩2 分钟前
全程 AI 写的小程序,刚接上会员虚拟支付,上线第二天就有人真金白银买单了|双签名、定价、iOS 的坑我全踩了一遍
前端·后端·微信小程序
我是人✓3 分钟前
SpringMVC异常处理与拦截器实战揭秘
java·开发语言·后端
仟里码4 分钟前
九:goroutine(1.什么是协程)
后端
不是万能的豆学长13 分钟前
排查Go服务40天后的内存泄漏问题
开发语言·后端·golang·go
阿狗童鞋14 分钟前
SpringSecurity权限认证实战指南
java·后端·spring
韩振方17 分钟前
Kubernetes Service 让会更换的 Pod 有稳定访问入口
后端
用户1257585243617 分钟前
Golang后台管理框架推荐:XYGo Admin与devinggo怎么选?
后端·go·ai编程
Wang's Blog18 分钟前
Java 项目部署之 Docker工具快速入门: 学习路径与命令速查导引
java·学习·docker