Konfigurirajte RestTemplate s RestTemplateBuilder

1. Uvod

U ovom ćemo brzom vodiču pogledati kako konfigurirati oprugu RestTemplate grah.

Počnimo s raspravom o tri glavne vrste konfiguracije:

  • koristeći zadani RestTemplateBuilder
  • pomoću a RestTemplateCustomizer
  • stvarajući vlastiti RestTemplateBuilder

Da biste to mogli lako testirati, slijedite upute za postavljanje jednostavne aplikacije Spring Boot.

2. Konfiguracija pomoću zadanog RestTemplateBuilder

Za konfiguriranje a RestTemplate na ovaj način, trebamo ubrizgati zadani RestTemplateBuilder grah pruža Spring Boot u naše razrede:

privatni RestTemplate restTemplate; @Autowired javni HelloController (RestTemplateBuilder builder) {this.restTemplate = builder.build (); }

The RestTemplate grah stvoren ovom metodom ima svoj opseg ograničen na klasu u kojoj ga gradimo.

3. Konfiguracija pomoću a RestTemplateCustomizer

Ovim pristupom možemo stvoriti prilagodbu aditiva za cijelu aplikaciju.

Ovo je malo složeniji pristup. Za ovo moramo stvoriti klasu koja implementira RestTemplateCustomizer,i definirajte ga kao grah:

javna klasa CustomRestTemplateCustomizer implementira RestTemplateCustomizer {@Override custom void customize (RestTemplate restTemplate) {restTemplate.getInterceptors (). add (new CustomClientHttpRequestInterceptor ()); }}

The CustomClientHttpRequestInterceptor presretač vrši osnovno bilježenje zahtjeva:

javna klasa CustomClientHttpRequestInterceptor implementira ClientHttpRequestInterceptor {private static Logger LOGGER = LoggerFactory .getLogger (CustomClientHttpRequestInterceptor.class); @Override javni ClientHttpResponse presretanje (zahtjev HttpRequest, tijelo bajta [], izvršavanje ClientHttpRequestExecution) baca IOException {logRequestDetails (zahtjev); vratiti izvršenje.izvršiti (zahtjev, tijelo); } privatna void logRequestDetails (HttpRequest zahtjev) {LOGGER.info ("Zaglavlja: {}", request.getHeaders ()); LOGGER.info ("Metoda zahtjeva: {}", request.getMethod ()); LOGGER.info ("URI zahtjeva: {}", request.getURI ()); }}

Sada definiramo CustomRestTemplateCustomizer kao grah u klasi konfiguracije ili u našoj aplikacijskoj klasi Spring Boot:

@Bean public CustomRestTemplateCustomizer customRestTemplateCustomizer () {return new CustomRestTemplateCustomizer (); }

S ovom konfiguracijom, svaki RestTemplate koje ćemo koristiti u našoj aplikaciji na sebi će imati prilagođeni presretač.

4. Konfiguracija stvaranjem vlastitog RestTemplateBuilder

Ovo je najekstremniji pristup prilagodbi a RestTemplate. To onemogućava zadanu automatsku konfiguraciju sustava RestTemplateBuilder, pa ga moramo sami definirati:

@Bean @DependsOn (value = {"customRestTemplateCustomizer"}) public RestTemplateBuilder restTemplateBuilder () {return new RestTemplateBuilder (customRestTemplateCustomizer ()); }

Nakon ovoga možemo ubrizgati prilagođeni graditelj u naše razrede kao što bismo to radili sa zadanim RestTemplateBuilder i stvoriti a RestTemplate kao i obično:

privatni RestTemplate restTemplate; @Autowired javni HelloController (graditelj RestTemplateBuilder) {this.restTemplate = builder.build (); }

5. Zaključak

Vidjeli smo kako konfigurirati a RestTemplate sa zadanim RestTemplateBuilder, gradeći svoje RestTemplateBuilder, ili pomoću a RestTemplateCustomizer grah.

Kao i uvijek, kompletna baza kodova za ovaj primjer može se naći u našem GitHub spremištu.


$config[zx-auto] not found$config[zx-overlay] not found