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 机制
待补充。