java.lang.Object
org.miaixz.bus.spring.boot.StartupReporter
收集和启动报告成本的基本组件。
该类负责收集应用程序启动过程中的各项性能指标,包括JVM启动时间、环境准备时间、 上下文刷新时间等,并提供统计和报告功能。它能够从Spring的启动事件中提取信息, 转换为结构化的统计模型,并支持自定义Bean指标的定制化处理。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal List<BeanMetricsCustomizer> Bean指标自定义器列表int缓冲区大小,用于BufferingApplicationStartupint成本阈值,用于过滤Bean初始化统计static final Collection<String> Spring Bean实例化类型集合static final Collection<String> Spring配置类增强类型集合static final Collection<String> Spring上下文后处理器类型集合final StartupMetrics启动统计信息 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid添加要报告的普通启动状态void结束应用程序启动voidbindToStartupReporter(org.springframework.core.env.ConfigurableEnvironment environment) 将环境绑定到StartupReporter从模型中提取阶段并返回StartupMetricsgenerateBeanStats(org.springframework.context.ConfigurableApplicationContext context) 转换BufferingApplicationStartup到BeanMetrics列表getStageNyName(String stageName) 按名称查找启动统计中报告的阶段voidsetAppName(String appName) 设置应用程序名称
-
Field Details
-
SPRING_BEAN_INSTANTIATE_TYPES
Spring Bean实例化类型集合 -
SPRING_CONTEXT_POST_PROCESSOR_TYPES
Spring上下文后处理器类型集合 -
SPRING_CONFIG_CLASSES_ENHANCE_TYPES
Spring配置类增强类型集合 -
statics
启动统计信息 -
beanMetricsCustomizers
Bean指标自定义器列表 -
bufferSize
public int bufferSize缓冲区大小,用于BufferingApplicationStartup -
costThreshold
public int costThreshold成本阈值,用于过滤Bean初始化统计
-
-
Constructor Details
-
StartupReporter
public StartupReporter()构造函数,初始化StartupReporter
-
-
Method Details
-
bindToStartupReporter
public void bindToStartupReporter(org.springframework.core.env.ConfigurableEnvironment environment) 将环境绑定到StartupReporter通过Spring的Binder机制,将环境配置中以"bus.startup"为前缀的属性绑定到当前实例
- Parameters:
environment- 要绑定的环境- Throws:
IllegalStateException- 如果绑定过程中发生异常
-
setAppName
设置应用程序名称- Parameters:
appName- 应用程序名称
-
applicationBootFinish
public void applicationBootFinish()结束应用程序启动设置应用程序启动耗时,并对所有阶段统计信息按开始时间进行排序
-
addCommonStartupStat
添加要报告的普通启动状态- Parameters:
stat- 增加的启动状态
-
getStageNyName
按名称查找启动统计中报告的阶段- Parameters:
stageName- 阶段名称- Returns:
- 报告的对象,当找不到对象时返回null
-
drainStartupStatics
从模型中提取阶段并返回StartupMetrics创建一个新的StartupMetrics实例,复制当前实例的数据,并清空当前实例的阶段统计列表
- Returns:
- 包含所有启动统计信息的新实例
-
generateBeanStats
public List<BeanMetrics> generateBeanStats(org.springframework.context.ConfigurableApplicationContext context) 转换BufferingApplicationStartup到BeanMetrics列表从应用程序上下文中获取BufferingApplicationStartup,并将其中的启动事件转换为BeanMetrics列表。 转换过程中会构建Bean的层级关系,并根据成本阈值过滤掉部分统计信息。
- Parameters:
context- 可配置的应用程序上下文- Returns:
- Bean指标列表
-