知识卡片
Spring Boot启动过程的生命周期事件链
内容
Spring Boot应用的启动不是一个原子步骤,而是拆成若干个明确阶段,每个阶段完成后都会广播对应的生命周期事件:应用刚启动时触发ApplicationStartedEvent,环境准备完毕但上下文还未就绪时触发ApplicationEnvironmentPreparedEvent,上下文准备好但Bean还未加载完成时触发ApplicationPreparedEvent,一旦启动失败则触发ApplicationFailedEvent;运行期间容器本身的开启/停止/关闭也各自对应ContextStartedEvent/ContextStoppedEvent/ContextClosedEvent。这套事件链本质上是把框架内部的启动流程显式暴露成一条可观测、可介入的时间线,开发者可以在任意阶段插入自定义逻辑(如启动失败时的告警、环境准备好后的动态配置注入),而不需要修改框架源码。发散:这是[[事件驱动模型的解耦效果与代价]]在框架自身生命周期管理上的应用——框架把”我现在处于哪个阶段”这件事变成了可订阅的信号,而不是一个不透明的黑盒启动过程。
参考来源
《Spring Boot应用开发实战》第2章《使用Spring Boot构建Web应用程序》