- ApplicationStartingEvent:开始启动中
- @since 1.5.0,并非1.0.0就有的哦。不过现在几乎没有人用1.5以下的版本了,所以可当它是标准事件。
- ApplicationEnvironmentPreparedEvent:环境已准备好
- @since 1.0.0。该事件节点是最为重要的一个节点之一,因为对于Spring应用来说,环境抽象
Enviroment
简直太重要了,它是最为基础的元数据,决定着程序的构建和走向,所以构建的时机是比较早的。
- @since 1.0.0。该事件节点是最为重要的一个节点之一,因为对于Spring应用来说,环境抽象
- ApplicationContextInitializedEvent:上下文已实例化
- @since 2.1.0,非常新的一个事件。当SpringApplication的上下文
ApplicationContext
准备好后,对单例Bean们实例化之前,发送此事件。所以此事件又可称为:contextPrepared
事件。
- @since 2.1.0,非常新的一个事件。当SpringApplication的上下文
- ApplicationPreparedEvent:上下文已准备好
- @since 1.0.0。截止到上个事件
ApplicationContextInitializedEvent
,应用上下文ApplicationContext充其量叫实例化好了,但是还剩下很重要的事没做,这便是本周期的内容。
- @since 1.0.0。截止到上个事件
- ApplicationStartedEvent:应用成功启动
- @since 2.0.0。截止到此,应用已经准备就绪,并且通过监听器、初始化器等完成了非常多的工作了,但仍旧剩下被认为最为重要的初始化单例Bean动作还没做、web容器(如Tomcat)还没启动,这便是这个周期所要做的事。
- ApplicationReadyEvent:应用已准备好
- @since 1.3.0。该事件所处的生命周期可认为基本同ApplicationStartedEvent,仅是在其后执行而已,两者中间并无其它特别的动作,但是监听此事件的监听器们还是蛮重要的。
- 异常情况:
SpringApplication
是有可能在启动的时候失败(如端口号已被占用),当然任何一步骤遇到异常时交给SpringApplication#handleRunFailure()
方法来处理,这时候也会有对应的事件发出。- ApplicationFailedEvent:应用启动失败
- 当
SpringApplication
在启动时抛出异常:可能是端口绑定、也可能是你自定义的监听器你写了个bug等,就会“可能”发送此事件。
- 当
- ApplicationFailedEvent:应用启动失败