Spring Boot 参考指南(使用WebClient调用REST服务)

本文介绍如何使用Spring Boot中的WebClient调用REST服务,包括创建和定制WebClient实例的方法,以及与RestTemplate相比的优势。通过代码示例展示了如何注入WebClient.Builder,创建带有预配置的WebClient实例,用于执行异步的REST调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

34. 使用WebClient调用REST服务

如果你的classpath上有Spring WebFlux,那么你还可以选择使用WebClient来调用远程REST服务,与RestTemplate相比,这个客户端具有更强的功能性,并且完全具有响应性。你可以使用builder,WebClient.create()创建自己的客户端实例,请参阅有关WebClient的部分

Spring Boot为你创建并预先配置这样的构建器,例如,客户端HTTP编解码器的配置方式与服务器编解码器的配置方式相同(请参阅WebFlux HTTP编解码器自动配置)。

下面的代码展示了一个典型的例子:

@Service
public class MyService {

    private final WebClient webClient;

    public MyService(WebClient.Builder webClientBuilder) {
        this.webClient = webClientBuilder.baseUrl("http://example.org").build();
    }

    public Mono<Details> someRestCall(String name) {
        return this.webClient.get().url("/{name}/details", name)
                        .retrieve().bodyToMono(Details.class);
    }

}

34.1 WebClient定制

WebClient定制有三种主要方法,这取决于你希望定制的应用范围有多广。

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

为所有WebClient.Builder实例进行应用程序级的附加定制,你可以声明WebClientCustomizer bean并在注入点局部的更改WebClient.Builder

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


上一篇:使用RestTemplate调用REST服务
下一篇:验证&发送电子邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值