Customizing RestTemplateBuilder
Based on the suggestion in https://github.com/spring-projects/spring-boot/issues/35658
Can someone help me understand how the settings are passed? What is the default SslBundle in Spring boot?
ClientHttpRequestFactorySettings settings = new ClientHttpRequestFactorySettings(Duration.ofSeconds(30),
Duration.ofSeconds(30), (SslBundle) null);
Error says Variable 'settings' is already defined in the scope
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder
.requestFactory((settings) -> new BufferingClientHttpRequestFactory(
ClientHttpRequestFactories.get(HttpComponentsClientHttpRequestFactory.class, settings)))
.setConnectTimeout(Duration.ofSeconds(300))
.setReadTimeout(Duration.ofSeconds(300))
.build();
}
Is the below approach valid?
@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder
.requestFactory(() -> {
ClientHttpRequestFactorySettings settings = new ClientHttpRequestFactorySettings(Duration.ofSeconds(30),
Duration.ofSeconds(30), true);
return ClientHttpRequestFactories.get(HttpComponentsClientHttpRequestFactory.class, settings);
}).build();
}