From e2fa45f96039d47252e55ad32bdd33ecf83f1e43 Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Fri, 24 Apr 2015 09:32:26 +0200 Subject: [PATCH 1/2] Make creation of the RestClient LAZY as it is no always required (see https://github.com/spring-cloud/spring-cloud-netflix/issues/312) --- .../cloud/netflix/ribbon/RibbonClientConfiguration.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java index 0239e27c..dbbe77a9 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java @@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.IClientConfig; @@ -88,6 +89,7 @@ public class RibbonClientConfiguration { } @Bean + @Lazy // see https://github.com/spring-cloud/spring-cloud-netflix/issues/312 @ConditionalOnMissingBean public RestClient ribbonRestClient(IClientConfig config, ILoadBalancer loadBalancer) { RestClient client = new OverrideRestClient(config); From df8c637a578c036a792fa25f90fcbdd5b53fe6d4 Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Tue, 28 Apr 2015 11:26:50 +0200 Subject: [PATCH 2/2] add short explanation in javadoc --- .../netflix/ribbon/RibbonClientConfiguration.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java index dbbe77a9..ad98da62 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java @@ -88,8 +88,17 @@ public class RibbonClientConfiguration { return serverList; } + /** + * Create a Netflix {@link RestClient} integrated with Ribbon if none already exists in the + * application context. It is not required for Ribbon to work properly and is therefore + * created lazily if ever another component requires it. + * + * @param config the configuration to use by the underlying Ribbon instance + * @param loadBalancer the load balancer to use by the underlying Ribbon instance + * @return a {@link RestClient} instances backed by Ribbon + */ @Bean - @Lazy // see https://github.com/spring-cloud/spring-cloud-netflix/issues/312 + @Lazy @ConditionalOnMissingBean public RestClient ribbonRestClient(IClientConfig config, ILoadBalancer loadBalancer) { RestClient client = new OverrideRestClient(config);