diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java index 9e26b4d3..278d3eba 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java @@ -17,9 +17,6 @@ package org.springframework.cloud.netflix.eureka; import javax.annotation.PostConstruct; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.metrics.reader.MetricReader; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -28,7 +25,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.netflix.appinfo.EurekaInstanceConfig; -import com.netflix.discovery.DiscoveryClient; import com.netflix.discovery.EurekaClientConfig; import com.netflix.discovery.converters.JsonXStream; import com.netflix.discovery.converters.XmlXStream; @@ -40,13 +36,9 @@ import com.netflix.discovery.converters.XmlXStream; @Configuration @EnableConfigurationProperties @ConditionalOnClass(EurekaClientConfig.class) -@ConditionalOnBean(DiscoveryClient.class) @ConditionalOnExpression("${eureka.client.enabled:true}") public class EurekaClientAutoConfiguration { - @Autowired - private DiscoveryClient discoveryClient; - @PostConstruct public void init() { XmlXStream.getInstance().setMarshallingStrategy( @@ -67,11 +59,5 @@ public class EurekaClientAutoConfiguration { return new EurekaInstanceConfigBean(); } - @Bean - @ConditionalOnMissingBean - @ConditionalOnBean(MetricReader.class) - public EurekaHealthIndicator eurekaHealthIndicator(EurekaInstanceConfig config, MetricReader metrics) { - return new EurekaHealthIndicator(discoveryClient, metrics, config); - } } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaDiscoveryClientConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaDiscoveryClientConfiguration.java index a935602f..6bc2747f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaDiscoveryClientConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaDiscoveryClientConfiguration.java @@ -17,10 +17,13 @@ package org.springframework.cloud.netflix.eureka; import javax.annotation.PreDestroy; +import com.netflix.appinfo.EurekaInstanceConfig; import com.netflix.appinfo.HealthCheckHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.metrics.reader.MetricReader; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -169,4 +172,11 @@ public class EurekaDiscoveryClientConfiguration implements SmartLifecycle, Order }; } + + @Bean + @ConditionalOnMissingBean + @ConditionalOnBean(MetricReader.class) + public EurekaHealthIndicator eurekaHealthIndicator(EurekaInstanceConfig config, MetricReader metrics) { + return new EurekaHealthIndicator(eurekaDiscoveryClient(), metrics, config); + } }