如何使用Feign客户端设置请求标头?

时间:2016-05-18 03:14:49

标签: spring-mvc spring-cloud microservices netflix-feign spring-cloud-netflix

我们正在使用Spring Cloud框架开发一套微服务,我们需要做的一件事就是设置请求标头。我知道我可以将参数docker run -d -P --name web -v /webapp training/webapp python app.py 传递给Feign方法,但该值需要来自另一个bean。我不知道SPEL是否可用于Feign参数值。 我认为这对大多数客户来说是一个很常见的用例,所以会有一些例子,但到目前为止我还没有找到任何例子。当然,我可以深入了解Spring课程代码,并尝试覆盖默认的Feign配置,但如果我要编写大量代码来实现这一点,它有点会破坏声明性客户端的目的。 有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我在使用RequestInterceptor之前已完成此操作,如下所示:

@Component
public class MyRequestInterceptor implements RequestInterceptor {
  @Override
  public void apply(RequestTemplate template) {
    template.headers(getHeadersFromWherever());
  }
}

您可以在此处找到更多有用的信息:

https://github.com/Netflix/feign#user-content-setting-headers-per-target

相关问题