Возможно ли, чтобы bean-компонент был доступен только во время создания специфицированного c bean / class?
Это для клиента Feign, так как он работает, вы определяете интерфейс:
interface ClientA {
// feign declarations
}
interface ClientB {
// feign declarations
}
И добавить к нему несколько аннотаций, а затем стартер сканирует путь к классам для этих аннотаций и генерирует классы в виде bean-компонентов ClientA и ClientB. В моем классе конфигурации я могу создать bean-компонент:
ClientAConfig. java:
@Bean
public ReactiveHttpRequestInterceptor r1() {
}
ClientBConfig. java:
@Bean
public ReactiveHttpRequestInterceptor r2() {
}
Прямо сейчас, с инструкциями трассировки:
- ClientA -> r1 -> r2
- ClientB -> r2 -> r1
Очевидно, я хочу, чтобы ClientA использовал только r1 и ClientB использовать только r2. Как это работает сейчас, кажется, что bean-объекты-перехватчики являются глобальными.
С Feign я не создаю фактические классы, просто объявляю интерфейсы, поэтому я вообще не могу комментировать реализацию. Глядя на код, даже не ясно, как они полностью подключены стартером, так как вручную подключенный не работает полностью, но как часть компоновщика, вы можете указать перехватчик специально, без использования глобальных компонентов ... просто не могу заставить строителя работать полностью.