openfeign 如何给特定的feign client 添加 RequestInterceptor
时间: 2023-07-26 21:42:18 浏览: 176
要给特定的 Feign Client 添加 RequestInterceptor,需要在定义该 Feign Client 的接口中,通过 @FeignClient 注解的 configuration 属性指定一个配置类(实现了 FeignClientConfigurer 接口),然后在该配置类中添加 RequestInterceptor。
具体步骤如下:
1. 定义 Feign Client 接口并添加 @FeignClient 注解,在注解中指定该 Feign Client 的名称和配置类。
```java
@FeignClient(name = "example", configuration = ExampleClientConfig.class)
public interface ExampleClient {
// ...
}
```
2. 定义配置类 ExampleClientConfig,并实现 FeignClientConfigurer 接口,在 configure 方法中添加 RequestInterceptor。
```java
@Configuration
public class ExampleClientConfig implements FeignClientConfigurer {
@Override
public void configure(FeignClientFactoryBean factoryBean, FeignBuilder feignBuilder) {
// 添加特定的 RequestInterceptor
feignBuilder.requestInterceptor(new ExampleRequestInterceptor());
}
// ...
}
```
3. 编写 ExampleRequestInterceptor,实现 RequestInterceptor 接口。
```java
public class ExampleRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
// 添加特定的请求头或参数
requestTemplate.header("X-Example-Header", "value");
}
}
```
通过这样的方式,就可以给特定的 Feign Client 添加 RequestInterceptor 了。需要注意的是,如果要给所有 Feign Client 都添加同一个 RequestInterceptor,可以在配置类中直接添加,不需要在每个接口中指定。
阅读全文