本篇內(nèi)容介紹了“Spring Boot2中怎么調(diào)用REST服務WebClient”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
惠來網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
如果你的類路徑上有Spring WebFlux,你也可以選擇使用WebClient來調(diào)用遠程REST服務。相比之下RestTemplate,這個客戶有更多的功能感,并且完全被動。您可以使用構(gòu)建器創(chuàng)建您自己的客戶端實例, WebClient.create()。請參閱WebClient上的相關(guān)部分。
Spring Boot為您創(chuàng)建并預配置這樣的構(gòu)建器。例如,客戶端HTTP編解碼器的配置方式與服務器的相同(請參閱 WebFlux HTTP編解碼器自動配置)。
以下代碼顯示了一個典型示例:
1@Service
2public class MyService {
3private final WebClient webClient;
4public MyBean(WebClient.Builder webClientBuilder) {
5this.webClient = webClientBuilder.baseUrl("http://example.org").build();
6}
7public Mono<Details> someRestCall(String name) {
8return this.webClient.get().url("/{name}/details", name)
9.retrieve().bodyToMono(Details.class);
10}
11}
WebClient定制有三種主要方法,具體取決于您希望應用的范圍。
為了盡可能縮小任何自定義的范圍,請注入自動配置 WebClient.Builder,然后根據(jù)需要調(diào)用其方法。WebClient.Builder實例是有狀態(tài)的:構(gòu)建器上的任何更改都會反映在隨后用它創(chuàng)建的所有客戶端中。如果您想使用相同的構(gòu)建器創(chuàng)建多個客戶端,則還可以考慮使用克隆構(gòu)建器WebClient.Builder other = builder.clone();。
要為所有WebClient.Builder實例進行應用程序范圍的附加定制,您可以聲明WebClientCustomizerbean并WebClient.Builder在注入點本地進行更改。
最后,你可以回到原來的API并使用WebClient.create()。在這種情況下,沒有自動配置或WebClientCustomizer應用。
“Spring Boot2中怎么調(diào)用REST服務WebClient”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!