6

我们正在使用 Spring Cloud 框架开发一套微服务,我们需要做的事情之一就是设置请求标头。我知道我可以将参数传递@RequestHeader给 Feign 方法,但该值需要来自另一个 bean。我不知道 SPEL 是否可以用于 Feign 参数值。我在想这对于大多数客户来说是一个足够常见的用例,所以会有一些例子,但到目前为止我还没有找到任何例子。当然,我可以深入研究 Spring 课程代码并尝试覆盖默认的 Feign 配置,但如果我必须编写大量代码来实现这一点,它有点违背了声明式客户端的目的。有什么想法吗?

4

1 回答 1

9

我在使用 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

于 2016-05-19T13:27:19.523 回答