编程框架-springboot启动流程(springboot+2.2.x)
背景
天天在用spring boot,不了解基础的启动流程是真的说不过去。本wiki将进行启动流程阐述。
启动流程
时序图
通过listener的视角观察启动过程
创建一个spring boot的Hello项目,并且添加一个listener
添加了断点以后,运行,看看效果
这里可以清楚的看到是进行同步传消息,而且把SpringApplication对象也回调回来了。
initializers一共有7个,listeners共12个(最后一个是我们注册的)。
initializers来源于:
listeners来源于
listener一共回调了n个消息,依次为:
- ApplicationStartingEvent
- ApplicationEnvironmentPreparedEvent
- ApplicationContextInitializedEvent
- ApplicationPreparedEvent
- ContextRefreshedEvent
- ApplicationStartedEvent
- ApplicationReadyEvent
- ContextClosedEvent
评价
本wiki都是用的上层概念来进行推测,之后需要深入到每个模块中去,才可以更好的了解其中的过程。