首先引入依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动类:
SpringApplication application = new SpringApplication(XuexitongtwoApplication.class);
application.setApplicationStartup(new BufferingApplicationStartup(10000));
application.run(args);
配置文件:
management.endpoints.web.exposure.include=startup
之后再命令行中输入:
curl --location --request POST http://localhost:8099/actuator/startup
即可输出信息。 意义:
在应用程序启动过程中,Spring Boot在后台执行大量工作。这项工作涉及创建Spring Application Context,创建各种bean,自动装配和各种组件的自动配置,最后启动应用程序。当Spring Boot应用程序的启动速度很慢时,它可能是一个或多个bean和相关的依赖项,需要花费更长的时间来初始化和减慢整个过程。
对Spring Boot应用程序进行性能分析通常无法帮助诊断启动问题。这是因为初始化了许多Bean,而实际上很难弄清是哪些导致了延迟。在这种情况下,Spring Boot应用程序启动指标非常有用。
在本教程中,我们将在Spring Boot应用程序中启用ApplicationStartup指标。我们还将启用S??pring Boot Actuator启动端点来监视启动指标。最后,我们将使用Java Flight Recorder记录应用程序启动指标。
ApplicationStartup和StartupStep
在Spring Boot 2.4发布之前, 确实很难确定启动缓慢的根本原因。但是,在Spring Boot 2.4.0中,我们有机会生成ApplicationStartup指标,该指标可用于准确确定哪个部分花费的时间更长。
尽管该ApplicationStartup接口及其概念是Spring Boot的新功能,但它们自5.3版本以来就是Spring Framework的一部分。启动度量标准提供了组件初始化,bean实例及其依赖关系链接的详细日志和逐步减少的日志。而且,这些度量提供每个粒度步骤的开始和结束时间,这对于确定最慢的位非常有帮助。
在应用程序启动指标期间,捕获整个启动过程的过程分为多个步骤,这些步骤由StartupStep接口表示。每个步骤都有一个唯一的ID,即步骤名称,父ID。同样,这些实现记录步骤的开始和结束时间。使用它们,我们可以发现哪一步比预期的慢。
https://codingdict.com/blog/1382
|