001package io.freefair.spring.okhttp; 002 003import org.springframework.boot.autoconfigure.AutoConfigureBefore; 004import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; 005import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; 006import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; 007import org.springframework.boot.web.client.RestTemplateCustomizer; 008import org.springframework.context.annotation.Bean; 009import org.springframework.context.annotation.Configuration; 010import org.springframework.core.annotation.Order; 011import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; 012import org.springframework.web.client.RestTemplate; 013 014/** 015 * @author Lars Grefer 016 */ 017@Configuration(proxyBeanMethods = false) 018@ConditionalOnClass({RestTemplateCustomizer.class, RestTemplate.class}) 019@AutoConfigureBefore(RestTemplateAutoConfiguration.class) 020public class OkHttpRestTemplateAutoConfiguration { 021 022 @Bean 023 @Order(2) 024 @ConditionalOnBean(OkHttp3ClientHttpRequestFactory.class) 025 public RestTemplateCustomizer okHttp3RestTemplateCustomizer(OkHttp3ClientHttpRequestFactory requestFactory) { 026 return restTemplate -> restTemplate.setRequestFactory(requestFactory); 027 } 028 029}