Spring源码: StartupStep、ApplicationStartup 接口
本文最后更新于:2023-06-03 13:37 星期六
Spring源码: StartupStep、ApplicationStartup 接口解析
UML
红色线为内部类关系,带有
㊉一方,是另一方的内部类。


public interface StartupStep
default interface Tags extends Iterable
default interface Tag
default class FlightRecorderStartupStep implements StartupStep
内含有:class FlightRecorderStartupEvent extends Event 类的变量
event。- default static class FlightRecorderTag implements Tag
 - default static class FlightRecorderTags implements Tags
- private class TagsIterator implements Iterator
 
 - private class TagsIterator implements Iterator
 
public interface ApplicationStartup
- default class DefaultApplicationStartup implements ApplicationStartup
- default static class DefaultStartupStep implements StartupStep
- default static class DefaultTags implements StartupStep.Tags
 
 
 - default static class DefaultStartupStep implements StartupStep
 - public class FlightRecorderApplicationStartup implements ApplicationStartup
 
- default class DefaultApplicationStartup implements ApplicationStartup
 
两接口、三个实现类,
StartupStep
 FlightRecorderStartupStep
ApplicationStartup
 DefaultApplicationStartup
 FlightRecorderApplicationStartup
StartupStep接口
步骤记录有关ApplicationStartup期间发生的特定阶段或操作的指标。
StartupStep 的生命周期如下:
该步骤是通过调用the application startup启动创建和启动的,并被分配了一个唯一的id 。
然后我们可以在处理过程中使用StartupStep.Tags附加信息
然后我们需要标记步骤的**
end()**实现可以跟踪“执行时间”或其他步骤指标。
1  |  | 
将记录通过 FlightRecorderStartupEvent 扩展为事件。
1  |  | 
1  |  | 
ApplicationStartup
使用steps检测应用程序启动阶段。
核心容器及其基础结构组件可以使用ApplicationStartup来标记应用程序启动期间的步骤,并收集有关执行上下文或其处理时间的数据。
1  |  | 
使用
ApplicationStartup 对 StartupStep 进一步封装,使用时通过ApplicationStartup 获取 StartupStep 的实例。
1  |  | 
1  |  | 
Event 机制
待补充。