Spring Boot2中怎么调用REST服务WebClient

本篇内容介绍了“Spring Boot2中怎么调用REST服务WebClient”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

调用REST服务 WebClient

如果你的类路径上有Spring WebFlux,你也可以选择使用WebClient来调用远程REST服务。相比之下RestTemplate,这个客户有更多的功能感,并且完全被动。您可以使用构建器创建您自己的客户端实例, WebClient.create()。请参阅WebClient上的相关部分。

Spring Boot为您创建并预配置这样的构建器。例如,客户端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定制有三种主要方法,具体取决于您希望应用的范围。

为了尽可能缩小任何自定义的范围,请注入自动配置 WebClient.Builder,然后根据需要调用其方法。WebClient.Builder实例是有状态的:构建器上的任何更改都会反映在随后用它创建的所有客户端中。如果您想使用相同的构建器创建多个客户端,则还可以考虑使用克隆构建器WebClient.Builder other = builder.clone();。

要为所有WebClient.Builder实例进行应用程序范围的附加定制,您可以声明WebClientCustomizerbean并WebClient.Builder在注入点本地进行更改。

最后,你可以回到原来的API并使用WebClient.create()。在这种情况下,没有自动配置或WebClientCustomizer应用。

“Spring Boot2中怎么调用REST服务WebClient”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!