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

相关推荐
阿湯哥10 分钟前
Spring AI Alibaba 实现 Workflow 全指南
java·人工智能·spring
用户307500930379327 分钟前
go Eino使用ADK开发agent
后端
唐叔在学习37 分钟前
Python自动化指令进阶:UAC提权
后端·python
旺仔小拳头..38 分钟前
Java ---变量、常量、类型转换、默认值、重载、标识符、输入输出、访问修饰符、泛型、迭代器
java·开发语言·python
Assby40 分钟前
Windows 在 PostgreSQL 上安装 vector 扩展
后端
12344521 小时前
【面试复盘】有了equals为什么还要hashcode
java·后端
小周在成长1 小时前
MyBatis 分页插件PageHelper
后端
Paladin_z1 小时前
Easy Query中间件的使用
后端
牛奔1 小时前
Go语言中结构体转Map优雅实现
开发语言·后端·macos·golang·xcode
毕设源码-邱学长1 小时前
【开题答辩全过程】以 台球俱乐部管理系统为例,包含答辩的问题和答案
java·eclipse