Spring Boot 为您创建并预配置了一个 WebClient.Builder
。强烈建议将其注入您的组件中并使用它来创建 WebClient
实例。Spring Boot 配置该构建器以共享 HTTP 资源,以与服务器相同的方式反射编解码器设置(请参阅 )等。
以下代码是一个典型示例:
Spring Boot 将自动检测用于驱动 WebClient
的 ,具体取决于应用程序 classpath 上可用的类库。目前支持 Reactor Netty 和 Jetty RS 客户端。
开发人员可以通过提供自定义的 ReactorResourceFactory
或 JettyResourceFactory
bean 来覆盖 Jetty 和 Reactor Netty 的资源配置 —— 这将同时应用于客户端和服务器。
如果您只希望覆盖客户端选项,则可以定义自己的 ClientHttpConnector
bean 并完全控制客户端配置。
您可以在 。
35.2、自定义 WebClient
要想自定义的范围尽可能地窄,请注入自动配置的 WebClient.Builder
,然后根据需要调用其方法。WebClient.Builder
实例是有状态的:构建器上的任何更改都会影响到之后所有使用它创建的客户端。如果要使用相同的构建器创建多个客户端,可以考虑使用 WebClient.Builder other = builder.clone();
的方式克隆构建器。
要在应用程序范围内对所有 WebClient.Builder
实例添加自定义,可以声明 WebClientCustomizer
bean 并在注入点局部更改 WebClient.Builder
。
最后,您可以回退到原始 API 并使用 。在这种情况下,不会应用自动配置或 WebClientCustomizer
。