当我启动 Spring 应用程序时,我可以在控制台中看到启动时间(我使用的是 IntelliJ IDEA)。
例如,下面的日志显示应用程序的启动时间为 13.427 秒。
2016-12-29 13:58:05.491 : Starting Application on 8DSXD72 with PID 14120
2016-12-29 13:58:05.518 : Running with Spring Boot v1.4.1.RELEASE, Spring v4.3.3.RELEASE
2016-12-29 13:58:05.519 : The following profiles are active: LOCAL
2016-12-29 13:58:15.537 : JMX is disabled
....
2016-12-29 13:58:17.392 : Started Application in 13.427 seconds (JVM running for 14.71)
有没有办法在代码中获得这个启动时间?我想在 Spring 中打印出应用程序启动时间
/info
端点。
最佳答案
这个答案基于 Sotirios 的评论。
首先,创建一个实现 SpringApplicationRunListener
的自定义类.
package com.example;
public class AppListener implements SpringApplicationRunListener {
public static long appStartTime;
public static long appFinishTime;
//Constructor is required.
public AppListener(SpringApplication application, String[] args) {
}
@Override
public void started() {
appStartTime = System.currentTimeMillis();
}
@Override
public void environmentPrepared(ConfigurableEnvironment environment) {
}
@Override
public void contextPrepared(ConfigurableApplicationContext context) {
}
@Override
public void contextLoaded(ConfigurableApplicationContext context) {
}
@Override
public void finished(ConfigurableApplicationContext context, Throwable exception) {
appFinishTime = System.currentTimeMillis();
}
}
然后,将此行添加到
spring.factories
文件。org.springframework.boot.SpringApplicationRunListener=com.example.AppListener
关于spring - 如何在代码中获取 Spring 应用程序启动时间/持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385832/