Как добавить указанную конфигурацию c к клиенту Spring Cloud OpenFeign, определенному в библиотеке? - PullRequest
0 голосов
/ 07 февраля 2020

Я использую библиотеку , которая определяет некоторые клиенты OpenFeign, используя spring-cloud-openfeign. Мне нужно добавить перехватчик для этих клиентов, чтобы добавить заголовок авторизации без изменения кода библиотеки.

До сих пор я только определил перехватчик как bean-компонент Spring, и все работало. Но теперь я добавил еще один клиент OpenFeign, которому нужен другой перехватчик, который я определил с помощью атрибута configuration аннотации @FeignClient. Моя проблема заключается в том, что новый клиент теперь получает оба перехватчика.

Я попытался настроить первый перехватчик, используя вместо этого свойства приложения, но перехватчику необходимо внедрить другой компонент, который, похоже, требует определения его как компонента, который добавил бы его ко второму клиенту снова.

Я также попытался найти эквивалент аннотации CDI @Typed, чтобы перехватчик был найден только при поиске его конкретного класса, но не при поиске RequestInterceptor интерфейс, но не смог найти.

Есть ли способ добавить конфигурацию к клиенту OpenFeign, определенному в библиотеке, чтобы он не влиял на другие клиенты?

1 Ответ

0 голосов
/ 11 февраля 2020

вы можете создать пользовательскую конфигурацию симуляции.

@FeignClient(name = "stores", configuration = CustomConfiguration.class)
public interface StoreClient {
    //..
}

, и ваша пользовательская конфигурация вызовет ваш пользовательский перехватчик. Вы можете реализовать некоторые логики c в своем пользовательском перехватчике.

if (request uri contains some pattern) add some headers

...