3131import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingClass ;
3232import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
3333import org .springframework .boot .context .properties .EnableConfigurationProperties ;
34+ import org .springframework .boot .restclient .RestTemplateBuilder ;
3435import org .springframework .boot .restclient .autoconfigure .service .HttpClientServiceProperties ;
3536import org .springframework .cloud .client .ServiceInstance ;
3637import org .springframework .cloud .client .loadbalancer .reactive .ReactiveLoadBalancer ;
@@ -102,6 +103,19 @@ static LoadBalancerRestClientBuilderBeanPostProcessor<DeferringLoadBalancerInter
102103 return new LoadBalancerRestClientBuilderBeanPostProcessor <>(loadBalancerInterceptorProvider , context );
103104 }
104105
106+ }
107+
108+ @ Configuration (proxyBeanMethods = false )
109+ @ ConditionalOnClass (RestTemplateBuilder .class )
110+ static class DeferringLoadBalancerInterceptorRestTemplateBuilderConfig {
111+
112+ @ Bean
113+ @ ConditionalOnMissingBean
114+ public static DeferringLoadBalancerInterceptor deferringLoadBalancerInterceptor (
115+ ObjectProvider <BlockingLoadBalancerInterceptor > loadBalancerInterceptorObjectProvider ) {
116+ return new DeferringLoadBalancerInterceptor (loadBalancerInterceptorObjectProvider );
117+ }
118+
105119 @ Bean
106120 @ ConditionalOnBean (DeferringLoadBalancerInterceptor .class )
107121 @ ConditionalOnMissingBean (LoadBalancerRestTemplateBuilderBeanPostProcessor .class )
@@ -111,6 +125,19 @@ static LoadBalancerRestTemplateBuilderBeanPostProcessor<DeferringLoadBalancerInt
111125 return new LoadBalancerRestTemplateBuilderBeanPostProcessor <>(loadBalancerInterceptorProvider , context );
112126 }
113127
128+ }
129+
130+ @ Configuration (proxyBeanMethods = false )
131+ @ ConditionalOnClass (HttpClientServiceProperties .class )
132+ static class DeferringLoadBalancerInterceptorHttpClientConfig {
133+
134+ @ Bean
135+ @ ConditionalOnMissingBean
136+ public static DeferringLoadBalancerInterceptor deferringLoadBalancerInterceptor (
137+ ObjectProvider <BlockingLoadBalancerInterceptor > loadBalancerInterceptorObjectProvider ) {
138+ return new DeferringLoadBalancerInterceptor (loadBalancerInterceptorObjectProvider );
139+ }
140+
114141 @ Bean
115142 @ ConditionalOnBean ({ HttpClientServiceProperties .class , ReactiveLoadBalancer .Factory .class })
116143 @ ConditionalOnMissingBean (LoadBalancerRestClientHttpServiceGroupConfigurer .class )
0 commit comments