:::tips 通过网关访问各个服务时,可以通过网关的过滤器来实现对经过网关的请求统一添加请求头,但是服务之间使用Feign互相调用时不经过网关,可以在Feign服务中手动配置来实现添加请求头 :::
单服务配置
:::tips 在Feign服务中创建一个配置类,实现RequestInterceptor接口,并重写其apply方法,可以调用RequestTemplate的方法来实现对请求的操作 :::
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
//给Feign调用的请求统一添加请求头
requestTemplate.header(键, 值);
}
}
:::tips 然后在XxxClient接口中,需要指定接口上面@FeignClient注解的configuration属性为刚刚编写的配置类类名.class,如果需要全局生效,需要配置所有@FeignClient注解的configuration属性为配置类类名.class :::
@FeignClient(value = "服务提供者的名称", configuration = FeignRequestInterceptor.class)
public interface XxxClient {
@GetMapping("请求路径")
public 返回值 方法名(@注解(绑定参数名) 请求参数);
}