4

Spring Cloudフレームワークを使用して一連のマイクロサービスを開発しており、必要なものの1つはリクエストヘッダーを設定することです。私はパラメータ@RequestHeaderをFeignメソッドに渡すことができますが、値は別のBeanから来る必要があることを知っています。 SPELがFeignのparam値として使用できるかどうかはわかりません。 これはほとんどのクライアントに共通の十分なユースケースだと考えていたので、いくつかの例がありますが、これまでのところ見つけられませんでした。もちろん、私はSpringのコースコードを掘り下げてデフォルトのFeign設定をオーバーライドしようとしていますが、これを達成するために多くのコードを書く必要があれば、宣言的なクライアントの目的を少し破ることができます。 考えていますか?Feignクライアントを使用してリクエストヘッダーを設定する方法は?

答えて

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

+0

を? [Spring Cloud doc](http://cloud.spring.io/spring-cloud-static/spring-cloud.html#spring-cloud-feign-overriding-defaults)には、「FeignClientsConfiguration」と「FooConfiguration」があります。 '@FeignClient(name =" stores "、configuration = FooConfiguration.class)' 'public interface StoreClient {...}' –

+0

@ComponentScan – RobP

+2

に含まれている場所に置くことができます。 @ ComponentScan'インターセプタはすべてのFeignクライアントに適用されます。一方、 'FooConfiguration.class'で定義されている場合は、特定のFeignClientにのみ適用されます。 –

関連する問題