可以作为端点访问HealthIndicator方法吗?

时间:2015-06-02 08:23:49

标签: spring spring-boot

通过实施HealthIndicator,您可以使用Spring Boot及其执行器模块添加自定义运行状况检查。

使用/health端点一起列出这些检查。

是否可以请求这些自定义健康状况端点,例如/health/myCustomCheck

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。这不是由致动器提供的。您可以通过调用/ mappings端点并查看仅映射/ health来验证这一点。

现在很长的答案是你可以添加自己的端点来调用你的自定义健康指标。这不是很难做到的。 Spring将为您拾取任何类型为Endpoint的bean并映射它们。一个粗略的例子就是这样的

@Bean
public Endpoint<Object> customHealthEndpoint(final MyHealthCheck health) {

    return new Endpoint<Object>() {

        @Override
        public String getId() {
            return "myHealthCheck";
        }

        @Override
        public Object invoke() {
           return health.health().getStatus();
        }

        @Override
        public boolean isEnabled() {
            return true;
        }

        @Override
        public boolean isSensitive() {
            return false;
        }

    };
}

然后您可以调用/ myHealthCheck并返回{“status”:“UP”}。