Nakonfigurujte RestTemplate pomocou RestTemplateBuilder
1. Úvod
V tomto rýchlom návode sa pozrieme na ako nakonfigurovať jar RestTemplate fazuľa.
Začnime diskusiou o troch hlavných typoch konfigurácie:
- pomocou predvoleného nastavenia RestTemplateBuilder
- pomocou a RestTemplateCustomizer
- vytváranie našich vlastných RestTemplateBuilder
Aby ste to mohli ľahko otestovať, postupujte podľa pokynov na nastavenie jednoduchej aplikácie Spring Boot.
2. Konfigurácia pomocou predvoleného nastavenia RestTemplateBuilder
Ak chcete nakonfigurovať a RestTemplate týmto spôsobom musíme vložiť predvolené RestTemplateBuilder fazuľa poskytnutá spoločnosťou Spring Boot do našich tried:
súkromná RestTemplate restTemplate; @Autowired public HelloController (RestTemplateBuilder builder) {this.restTemplate = builder.build (); }
The RestTemplate fazuľa vytvorená touto metódou má svoje rozsah obmedzený na triedu, v ktorej ho staviame.
3. Konfigurácia pomocou a RestTemplateCustomizer
S týmto prístupom môžeme vytvoriť aditívne prispôsobenie pre celú aplikáciu.
Toto je trochu komplikovanejší prístup. Z tohto dôvodu musíme vytvoriť triedu, ktorá implementuje RestTemplateCustomizer,a definovať to ako fazuľa:
verejná trieda CustomRestTemplateCustomizer implementuje RestTemplateCustomizer {@Override public void customize (RestTemplate restTemplate) {restTemplate.getInterceptors (). add (new CustomClientHttpRequestInterceptor ()); }}
The CustomClientHttpRequestInterceptor interceptor robí základné logovanie požiadavky:
verejná trieda CustomClientHttpRequestInterceptor implementuje ClientHttpRequestInterceptor {private static Logger LOGGER = LoggerFactory .getLogger (CustomClientHttpRequestInterceptor.class); @Override verejný odpočúvanie ClientHttpResponse (požiadavka HttpRequest, telo bytu [], vykonávanie ClientHttpRequestExecution) hodí IOException {logRequestDetails (požiadavka); vrátiť vykonanie.exekúcia (požiadavka, telo); } private void logRequestDetails (požiadavka HttpRequest) {LOGGER.info ("Hlavičky: {}", request.getHeaders ()); LOGGER.info ("Metóda žiadosti: {}", request.getMethod ()); LOGGER.info ("Identifikátor URI požiadavky: {}", request.getURI ()); }}
Teraz definujeme CustomRestTemplateCustomizer ako fazuľa v konfiguračnej triede alebo v našej aplikačnej triede Spring Boot:
@Bean public CustomRestTemplateCustomizer customRestTemplateCustomizer () {return new CustomRestTemplateCustomizer (); }
S touto konfiguráciou každý RestTemplate ktoré použijeme v našej aplikácii, bude mať nastavený vlastný zachytávač.
4. Konfigurácia vytvorením našej vlastnej RestTemplateBuilder
Toto je najextrémnejší prístup k prispôsobeniu a RestTemplate. To zakáže predvolenú automatickú konfiguráciu RestTemplateBuilder, takže si to musíme definovať sami:
@Bean @DependsOn (value = {"customRestTemplateCustomizer"}) public RestTemplateBuilder restTemplateBuilder () {return new RestTemplateBuilder (customRestTemplateCustomizer ()); }
Po tomto môžeme vložiť vlastný staviteľ do našich tried, ako by sme to robili s predvoleným nastavením RestTemplateBuilder a vytvorte RestTemplate ako zvyčajne:
súkromná RestTemplate restTemplate; @Autowired public HelloController (RestTemplateBuilder builder) {this.restTemplate = builder.build (); }
5. Záver
Už sme videli, ako nakonfigurovať a RestTemplate s predvoleným nastavením RestTemplateBuilder, budovanie našich vlastných RestTemplateBuilder, alebo pomocou a RestTemplateCustomizer fazuľa.
Celú databázu kódov pre tento príklad nájdete ako vždy v našom úložisku GitHub.