diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java index 9b820e4d..6268d860 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/CommonsClientAutoConfiguration.java @@ -59,6 +59,7 @@ public class CommonsClientAutoConfiguration { @Bean @ConditionalOnProperty(value = "spring.cloud.discovery.client.composite-indicator.enabled", matchIfMissing = true) + @ConditionalOnBean(DiscoveryHealthIndicator.class) public DiscoveryCompositeHealthIndicator discoveryCompositeHealthIndicator( HealthAggregator aggregator, List indicators) { return new DiscoveryCompositeHealthIndicator(aggregator, indicators); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java index 379c42ec..73815cb3 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java @@ -60,6 +60,15 @@ public class CommonsClientAutoConfigurationTests { } } + @Test + public void disableHealthIndicator() { + try (ConfigurableApplicationContext ctxt = init( + "spring.cloud.discovery.client.health-indicator.enabled=false")) { + assertBeanNonExistant(ctxt, DiscoveryClientHealthIndicator.class); + assertBeanNonExistant(ctxt, DiscoveryCompositeHealthIndicator.class); + } + } + private void assertBeanNonExistant(ConfigurableApplicationContext ctxt, Class beanClass) { try {