2016-05-12 4 views
3

Эта ссылка writing_custom_healthindicators описывает, как зарегистрировать пользовательские HealthIndicators, чтобы их можно было использовать с приводом Spring Boot. В примере в ссылке используется @Component для регистрации пользовательских классов, реализующих интерфейс HealthIndicator.Как зарегистрировать анонимных HealthIndicators в Spring Boot Actuator

Но я создаю анонимный HealthIndicator экземпляров. Ниже приведен пример того, как можно создавать эти анонимные HealthIndicators экземпляры.

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

Допустим, код выше в цикле, где многие HealthIndicators создаются. Как их можно зарегистрировать с помощью Spring, чтобы Spring Boot Actuator распознал их, как указано в ссылке?

ответ

2

Одним из способов является создание пользовательских 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); 
    } 
} 
+0

удивительным. Попробуем это сегодня. –

+0

Это сработало. Спасибо! –

Смежные вопросы