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

Possible to access HealthIndicator methods as endpoints?

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

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

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

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

现在长话短说,您可以添加自己的端点来调用您的自定义运行状况指示器。这并不难做到。 Spring 将为您挑选任何 Endpoint 类型的 beans 并映射它们。一个粗略的例子是这样的

@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"}。