# 34.1 自定义WebClient

有三种主要的方式实现`WebClient`的自定义,用哪种方式取决于你想多大范围地应用自定义。

为了使自定义的范围尽可能的小，注入自动配置的`WebClient.Builder`，然后根据需要调用它的方法。`WebClient.Builder`实例有状态：在builder上的任何改变都会反映在其后创建的所有客户端里。如果你想要使用相同的builder创建几个客户端，你也可以使用`WebClient.Builder other = builder.clone();`克隆builder。。

为了对`WebClient.Builder`实例实现整个应用范围的自定义，你可以声明`WebClientCustomizer` bean，并且在注入时局部地改变`WebClient.Builder`。

最后，你可以回到原始API，使用`WebClient.create()`。那种情况下，不会应用自动配置或者`WebClientCustomizer`。
