Spring - 启动流程

概述
一, SpringBoot启动的时候, 会构造一个SpringApplication的实例, 构造SpringApplication的时候会进行初始化的工作, 初始化的时候做以下几件事:

1, 把参数source设置到springApplication属性中, 这个source可以是任意类型的参数

2, 判断是否是web程序, 并且设置到WebEnvironment的boolean属性中

3, 创建并初始化ApplicationInitiallzer, 设置到Initializers属性中.

4, 创建并初始化ApplicationListener, 设置到Listener属性中

5, 初始化主类, mainApplicationClass

二, SpringApplication构造完成之后调用run方法, 启动SpringApplication, run方法执行的时候会做以下几件事

1, 构造一个StopWatch计时器, 用来记录SpringBoot的启动时间

2, 初始化监听器, 获取SpringApplicationRunListeners并启动监听, 用于监听run方法的执行

3, 创建并初始化ApplicationArguments. 获取run方法传递的args参数

4, 创建并初始化ConfigurableEnvironment(环境配置). 封装main方法的参数, 初始化参数, 写入到Environment中, 发布ApplicationEnvironmentPreparedEvent(环境事件), 做一些绑定后返回Environment.

5, 打印banner和版本

6, 构造spring容器(ApplicationContext)上下文. 先填充Environment环境和设置的参数. 如果Application有设置BeanNameGenerator(bean), resourceLoader(加载器), 就将其注入到上下文中. 调用初始化的切面, 发布ApplicationContextInitializedEvent(上下文初始化)事件

7, springApplicationRunListeners发布的finish事件

8, stopWatch计时器停止计时, 日志打印总共启动的事件

9, 发布springboot程序已启动事件(started)

10, 调用ApplicationRunner和CommandLineRunner

11, 最后发布就绪事件ApplicationReadyEvent, 标志着SpringBoot可以处理接收的请求了(running)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值