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 4c32cf29e..9a0e173b0 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; @@ -87,7 +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 @ConditionalOnMissingBean public RestClient ribbonRestClient(IClientConfig config, ILoadBalancer loadBalancer) { RestClient client = new OverrideRestClient(config);