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

相关推荐
脚本自动化开发6 小时前
折叠双屏MU156LA:写稿修图游戏体验
后端
脚本自动化开发6 小时前
AI短剧800集讲规矩,观众忘了是AI
后端
Csvn8 小时前
安装、升级与目录结构
后端·nginx
皮皮林5518 小时前
万能通用!权限系统就该这么设计
后端
2601_962106649 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice9 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
GoAI9 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
2601_9621066410 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
橙子家10 小时前
RESTful 接口:它并非标准或协议,而是一种【架构风格】
后端
杨凯凡10 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理