Spring Boot的健康执行器 - 什么时候启动?

时间:2018-03-08 09:28:35

标签: java spring actuator

我找不到有关Springs Health Actuator何时返回UP状态的任何文档。您可以依赖所有 @Components 进行初始化吗? @Controller 是否准备好提供请求?

1 个答案:

答案 0 :(得分:3)

为了测试是否加载了应用程序上下文,您可以执行此自定义实现。

@EventListener - 在初始化上下文时触发使用EventListener注释的方法。

在下面的代码中,我在成功初始化时增加了计数器。当您点击执行器健康状况终点时,您将获得状态为UP。

上下文初始化运行状况检查的示例实现: -

@Component
public class ApplicationContextHealthIndicator implements HealthIndicator {

    private final Logger LOG = Logger.getLogger(getClass().getName());

    public static int counter;

    @EventListener
    public void onApplicationEvent(ContextRefreshedEvent event) {
        LOG.info("Increment counter :" + counter);
        counter++;
    }

    @Override
    public Health health() {
        if (counter == 0) {
            return Health.down().withDetail("Error Code", 500).build();
        }
        return Health.up().build();
    }
}

端点Spring启动版本5: -

  

http://localhost:8080/actuator/health

Spring执行器可以检查数据库,Web服务端点,电子邮件服务器等。它可以提供作为应用程序一部分的所有这些资源的状态。

Some default health indicators available