Állítson be egy RestTemplate alkalmazást a RestTemplateBuilder alkalmazással

1. Bemutatkozás

Ebben a gyors bemutatóban meg fogjuk vizsgálni hogyan konfigurálja a rugót RestTemplate bab.

Kezdjük a három fő konfigurációs típus megvitatásával:

  • az alapértelmezett használatával RestTemplateBuilder
  • használva RestTemplateCustomizer
  • saját magunk létrehozása RestTemplateBuilder

Ennek egyszerű teszteléséhez kövesse az egyszerű Spring Boot alkalmazás beállításának útmutatóját.

2. Konfigurálás az alapértelmezett használatával RestTemplateBuilder

A konfigurálásához a RestTemplate így nekünk kell beadja az alapértelmezett értéket RestTemplateBuilder babot a Spring Boot biztosítja osztályainkba:

privát RestTemplate restTemplate; @Autowired public HelloController (RestTemplateBuilder builder) {this.restTemplate = builder.build (); }

A RestTemplate Az ezzel a módszerrel létrehozott babnak megvan hatókör arra az osztályra korlátozódik, amelyben felépítjük.

3. Konfiguráció a RestTemplateCustomizer

Ezzel a megközelítéssel megtehetjük hozzon létre egy alkalmazásszintű, additív testreszabást.

Ez egy kicsit bonyolultabb megközelítés. Ehhez nekünk kell hozzon létre egy osztályt, amely megvalósítja RestTemplateCustomizer,és definiálja babként:

public class CustomRestTemplateCustomizer megvalósítja a RestTemplateCustomizer {@Override public void customize (RestTemplate restTemplate) {restTemplate.getInterceptors (). add (new CustomClientHttpRequestInterceptor ()); }}

A CustomClientHttpRequestInterceptor az elfogó a naplózást a kérelem alapvető naplózásával végzi:

public class CustomClientHttpRequestInterceptor implementálja a ClientHttpRequestInterceptor {private static Logger LOGGER = LoggerFactory .getLogger (CustomClientHttpRequestInterceptor.class); @Orride nyilvános ClientHttpResponse elfogás (HttpRequest kérés, byte [] törzs, ClientHttpRequestExecution végrehajtás) dobja az IOException {logRequestDetails (kérés); visszatérési végrehajtás.execute (kérés, test); } private void logRequestDetails (HttpRequest kérés) {LOGGER.info ("Fejlécek: {}", request.getHeaders ()); LOGGER.info ("Kérési módszer: {}", request.getMethod ()); LOGGER.info ("Kérés URI: {}", request.getURI ()); }}

Most meghatározzuk CustomRestTemplateCustomizer babként egy konfigurációs osztályban vagy a Spring Boot alkalmazásosztályunkban:

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

Ezzel a konfigurációval minden RestTemplate amelyet az alkalmazásunkban fogunk használni, akkor rajta lesz az egyéni lehallgató.

4. Konfiguráció saját magunk létrehozásával RestTemplateBuilder

Ez a legszélsőségesebb megközelítés a RestTemplate. Azt letiltja az alapértelmezett automatikus konfigurálását RestTemplateBuilder, tehát magunknak kell meghatároznunk:

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

Ezek után megtehetjük beadja az egyedi gyártót osztályainkba, mint azt alapértelmezéssel tennénk RestTemplateBuilder és hozzon létre egy RestTemplate mint általában:

privát RestTemplate restTemplate; @Autowired public HelloController (RestTemplateBuilder builder) {this.restTemplate = builder.build (); }

5. Következtetés

Láttuk, hogyan kell konfigurálni a RestTemplate alapértelmezettel RestTemplateBuilder, a saját építését RestTemplateBuilder, vagy a RestTemplateCustomizer bab.

Mint mindig, ennek a példának a teljes kódbázisa megtalálható a GitHub adattárunkban.