Á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.