У меня есть несколько фамильных клиентов с различными конфигурациями. Общая конфигурация выглядит следующим образом < /p>
public class FeignLogConfig {
@Bean
public LogOkHttpInterceptor LogOkHttpInterceptor() { //custom interceptor
return new LogOkHttpInterceptor();
}
@Bean
public feign.okhttp.OkHttpClient okHttpClient(LogOkHttpInterceptor interceptor) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(interceptor);
return new feign.okhttp.OkHttpClient(builder.build());
}
}
< /code>
Это может быть дополнительно расширено < /p>
public class FeignRetryerConfig extends FeignLogConfig {
@Bean
public Retryer retryer() {
return new Retryer.Default(100, 500, 5);
}
}
< /code>
или просто < /p>
public class FeignEmptyConfig extends FeignLogConfig {}
< /code>
Клиент, аннотированный < /p>
@FeignClient(value = "retryClient", url = url, configuration = FeignRetryerConfig.class)
< /code>
или < /p>
@FeignClient(value = "logClient", url = url, configuration = FeignLogConfig.class)
< /code>
фактически будет использовать определенный перехватчик, но < /p>
@FeignClient(value = "emptyClient", url = url, configuration = FeignEmptyConfig.class)
не будет использовать logohttpinterceptor . Я не могу найти объяснение в документации, поэтому я не знаю, действительно ли я что -то упускаю. < /P>
Можно найти минимальный пример здесь. В то время как приведенный выше FeignemptyConfig не работает, следующее работает!
@Import(CommonFeignConfig.class)
public class EmptyFeignConfig {}
Подробнее здесь: https://stackoverflow.com/questions/737 ... t-extended