3

此链接writing_custom_healthindicators描述了如何注册自定义HealthIndicators以便它们可以与 Spring Boot Actuator 一起使用。链接中的示例用于注册实现接口@Component的自定义类。HealthIndicator

但我正在创建匿名HealthIndicator实例。下面是如何创建这些匿名HealthIndicators实例的示例。

        HealthIndicator healthIndicator = () -> {
            Health h;
            //custom code to instantiate Health object.
            return h;
        };
        //how to register h with Spring?

可以说上面的代码在一个 for 循环中,其中HealthIndicators正在创建许多代码。它们如何在 Spring 中注册,以便 Spring Boot Actuator 能够按照链接中的说明识别它们?

4

1 回答 1

3

一种方法是像这样提供自定义HealthEndpoint

@Configuration
class HealthConfig {
    @Bean
    HealthEndpoint healthEndpoint(Map<String, HealthIndicator> defaultIndicators){
        for(int i=0;i<10;i+=1){
            defaultIndicators.put("custom_indicator_" + i, ()-> Health.down().build());
        }
        return new HealthEndpoint(new OrderedHealthAggregator(), defaultIndicators);
    }
}
于 2016-05-12T05:44:15.217 回答