:::tips 通过网关访问各个服务时,可以通过网关的过滤器来实现对经过网关的请求统一添加请求头,但是服务之间使用Feign互相调用时不经过网关,可以在Feign服务中手动配置来实现添加请求头 :::

单服务配置

:::tips 在Feign服务中创建一个配置类,实现RequestInterceptor接口,并重写其apply方法,可以调用RequestTemplate的方法来实现对请求的操作 :::

  1. @Configuration
  2. public class FeignRequestInterceptor implements RequestInterceptor {
  3. @Override
  4. public void apply(RequestTemplate requestTemplate) {
  5. //给Feign调用的请求统一添加请求头
  6. requestTemplate.header(键, 值);
  7. }
  8. }

:::tips 然后在XxxClient接口中,需要指定接口上面@FeignClient注解的configuration属性为刚刚编写的配置类类名.class,如果需要全局生效,需要配置所有@FeignClient注解的configuration属性为配置类类名.class :::

  1. @FeignClient(value = "服务提供者的名称", configuration = FeignRequestInterceptor.class)
  2. public interface XxxClient {
  3. @GetMapping("请求路径")
  4. public 返回值 方法名(@注解(绑定参数名) 请求参数);
  5. }