-
SpringApplication生命周期的事件体系
- ApplicationStartingEvent:开始启动中
- @since 1.5.0,并非1.0.0就有的哦。不过现在几乎没有人用1.5以下的版本了,所以可当它是标准事件。
- ApplicationEnvironmentPreparedEvent:环境已准备好
- @since 1.0.0。该事件节点是最为重要的一个节点之一,因为对于Spring应用来说,环境抽象
Enviroment
简直太重要了,它是最为基础的元数据,决定着程序的构建和走向,所以构建的时机是比较早的。
- ApplicationContextInitializedEvent:上下文已实例化
- @since 2.1.0,非常新的一个事件。当SpringApplication的上下文
ApplicationContext
准备好后,对单例Bean们实例化之前,发送此事件。所以此事件又可称为:contextPrepared
事件。
- ApplicationPreparedEvent:上下文已准备好
- @since 1.0.0。截止到上个事件
ApplicationContextInitializedEvent
,应用上下文ApplicationContext充其量叫实例化好了,但是还剩下很重要的事没做,这便是本周期的内容。
- ApplicationStartedEvent:应用成功启动
- @since 2.0.0。截止到此,应用已经准备就绪,并且通过监听器、初始化器等完成了非常多的工作了,但仍旧剩下被认为最为重要的初始化单例Bean动作还没做、web容器(如Tomcat)还没启动,这便是这个周期所要做的事。
- ApplicationReadyEvent:应用已准备好
- @since 1.3.0。该事件所处的生命周期可认为基本同ApplicationStartedEvent,仅是在其后执行而已,两者中间并无其它特别的动作,但是监听此事件的监听器们还是蛮重要的。
- 异常情况:
SpringApplication
是有可能在启动的时候失败(如端口号已被占用),当然任何一步骤遇到异常时交给SpringApplication#handleRunFailure()
方法来处理,这时候也会有对应的事件发出。
- ApplicationFailedEvent:应用启动失败
- 当
SpringApplication
在启动时抛出异常:可能是端口绑定、也可能是你自定义的监听器你写了个bug等,就会“可能”发送此事件。
-
相关阅读:
selenium 截图加上时间戳
python UI自动化实战记录二:请求接口数据并提取数据
jsonp跨域请求响应结果处理函数(python)
启动不同的浏览器函数封装
python UI自动化实战记录一:测试需求与测试思路
python接口测试-项目实践(七)脚本优化
python接口测试-项目实践(六) 实际结果与预期结果对比之 数据源与数据库对比
python接口测试-项目实践(五) 实际结果与预期结果对比之 接口对比
python接口测试-项目实践(四)拼接出预期结果
python接口测试-项目实践(三)数据的处理示例
-
原文地址:https://www.cnblogs.com/alex-xyl/p/13431890.html
Copyright © 2020-2023
润新知