33.1 RestTemplate customization
When a RestTemplateBuilder
builds a RestTemplate
it can be further customized using a RestTemplateCustomizer
. Any RestTemplateCustomizer
beans will be automatically added to the auto-configured RestTemplateBuilder
. Furthermore, a new RestTemplateBuilder
with additional customizers can be created by calling additionalCustomizers(RestTemplateCustomizer…)
.
Here’s an example of a customizer that configures the use of a proxy for all hosts except 192.168.0.5
:
static class ProxyCustomizer implements RestTemplateCustomizer { _@Override_ public void customize(RestTemplate restTemplate) { HttpHost proxy = new HttpHost("proxy.example.com"); HttpClient httpClient = HttpClientBuilder.create() .setRoutePlanner(new DefaultProxyRoutePlanner(proxy) { _@Override_ public HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException { if (target.getHostName().equals("192.168.0.5")) { return null; } return super.determineProxy(target, request, context); } }).build(); restTemplate.setRequestFactory( new HttpComponentsClientHttpRequestFactory(httpClient)); } }