Configuration
About
Creating and Registering a RestTemplate Bean
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}
}Setting Timeouts
Types of Timeouts We Should Configure
Timeout Type
Description
Timeout Type
Description
1. Using SimpleClientHttpRequestFactory
2. Using HttpComponentsClientHttpRequestFactory
3. Using RestTemplateBuilder
Adding Interceptors
Interface: ClientHttpRequestInterceptor
ClientHttpRequestInterceptorHow to Register Interceptors ?
Registering Manually
Example
1. Add Standard Headers (e.g., Authentication, Correlation IDs)
2. Centralized Logging of Requests/Responses
3. Dynamic API Key Injection Based on Service
Custom Message Converters
Default Converters
Converter Class
Purpose
Media Type
Why Customize Message Converters ?
Scenario
Example
How to Add Custom Message Converters ?
Programmatic Registration
Use Case: Supporting a Custom Media Type
Use Case: Replace Jackson with Gson
How Converters Are Selected
Connection Pooling
Why Connection Pooling Matters ?
Reason
Benefit
Default vs. Pooled
Setup
Request Factory
Connection Handling
Apache HttpClient Setup for Pooling
Setting
Description
Using OkHttp Instead
Logging
1. Enable Basic RestTemplate Logging
2. Enable Underlying HTTP Client Logging
a) Default (SimpleClientHttpRequestFactory → java.net.HttpURLConnection)
b) Apache HttpClient (HttpComponentsClientHttpRequestFactory)
c) OkHttp (OkHttp3ClientHttpRequestFactory)
3. Enable Message Converter Logging
4. Enable Client Factory Logging
Last updated