摘要:使用調用服務如果需要從應用程序調用遠程服務,你可以使用框架的類,由于實例通常需要在使用之前進行定制,因此不提供任何自動配置的。自動配置的確保將合理的應用于實例。上一篇消息傳遞下一篇使用調用服務
33. 使用RestTemplate調用REST服務
如果需要從應用程序調用遠程REST服務,你可以使用Spring框架的RestTemplate類,由于RestTemplate實例通常需要在使用之前進行定制,因此Spring Boot不提供任何自動配置的RestTemplate bean。但是,它可以自動配置一個RestTemplateBuilder,當需要時,它可以用來創建RestTemplate實例。自動配置的RestTemplateBuilder確保將合理的HttpMessageConverters應用于RestTemplate實例。
下面的代碼展示了一個典型的樣例:
@Service public class MyService { private final RestTemplate restTemplate; public MyService(RestTemplateBuilder restTemplateBuilder) { this.restTemplate = restTemplateBuilder.build(); } public Details someRestCall(String name) { return this.restTemplate.getForObject("/{name}/details", Details.class, name); } }
RestTemplateBuilder包含許多有用的方法,可用于快速配置RestTemplate,例如,要添加BASIC auth支持,可以使用builder.basicAuthorization("user", "password").build()。33.1 RestTemplate定制
RestTemplate定制有三種主要方法,取決于你希望定制應用到的范圍有多廣。
要使任何定制的范圍盡可能狹窄,請注入自動配置的RestTemplateBuilder,然后根據需要調用其方法,每個方法調用都返回一個新的RestTemplateBuilder實例,因此自定義只影響構建器的這種使用。
要進行應用程序范圍內的附加定制,請使用RestTemplateCustomizer bean,所有這些bean都會自動注冊到自動配置的RestTemplateBuilder中,并應用于使用它構建的任何模板。
下面的示例顯示了一個定制器,它配置除192.168.0.5之外的所有主機的代理的使用:
static class ProxyCustomizer implements RestTemplateCustomizer { @Override public void customize(RestTemplate restTemplate) { HttpHost proxy = new HttpHost("proxy.example.com"); HttpClient httpClient = HttpClientBuilder.create() .setRoutePlanner(new DefaultProxyRoutePlanner(proxy) { @Override public HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException { if (target.getHostName().equals("192.168.0.5")) { return null; } return super.determineProxy(target, request, context); } }).build(); restTemplate.setRequestFactory( new HttpComponentsClientHttpRequestFactory(httpClient)); } }
最后,最極端(也很少使用)的選項是創建自己的RestTemplateBuilder bean,這樣可以關閉RestTemplateBuilder的自動配置,并防止使用任何RestTemplateCustomizer bean。
上一篇:消息傳遞 下一篇:使用WebClient調用REST服務文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77370.html
摘要:為所有實例進行應用程序級的附加定制,你可以聲明并在注入點局部的更改。最后,你可以回到原來的并使用,在這種情況下,不應用自動配置或。上一篇使用調用服務下一篇驗證發送電子郵件 34. 使用WebClient調用REST服務 如果你的classpath上有Spring WebFlux,那么你還可以選擇使用WebClient來調用遠程REST服務,與RestTemplate相比,這個客戶端具有...
摘要:參考指南使你可以輕松地創建可運行的獨立的生產級的基于的應用程序,我們對平臺和第三方庫有自己的看法,這樣你就可以以最低限度工作開始了,大多數應用程序都需要很少的配置。文檔本節簡要概述了參考文檔,它充當文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創建可運行的獨立的、生產級的基于Spring的應用程序,我們對Spring平臺和第三方庫有自己的看...
摘要:在服務架構中,業務都會被拆分成一個獨立的服務,服務與服務的通訊是基于的。配置文件如下在工程的啟動類中通過向服務中心注冊并且注冊了一個通過注冊表明,這個是負載均衡的。 轉載請標明出處: http://blog.csdn.net/forezp/a...本文出自方志朋的博客 在上一篇文章,講了服務的注冊和發現。在服務架構中,業務都會被拆分成一個獨立的服務,服務與服務的通訊是基于http re...
摘要:指南無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術。使用進行消息傳遞了解如何將用作消息代理。安全架構的主題指南,這些位如何組合以及它們如何與交互。使用的主題指南以及如何為應用程序創建容器鏡像。 Spring 指南 無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術。 入門指南 這些...
摘要:一個客戶端請求從發出到被響應經歷了哪些組件哪些微服務請求總時長每個組件所花時長等信息我們有必要了解和收集,以幫助我們定位性能瓶頸進行性能調優,因此監控整個微服務架構的調用鏈十分有必要,本文將闡述如何使用搭建微服務調用鏈追蹤中心。 showImg(https://segmentfault.com/img/remote/1460000014553707); 概述 一個完整的微服務系統包含...
閱讀 2665·2021-11-11 16:54
閱讀 3658·2021-08-16 10:46
閱讀 3441·2019-08-30 14:18
閱讀 3034·2019-08-30 14:01
閱讀 2723·2019-08-29 14:15
閱讀 2007·2019-08-29 11:31
閱讀 3083·2019-08-29 11:05
閱讀 2583·2019-08-26 11:54