Spring @Bean с именем рядом с @Qualifier с внедрением конструктора приводит к «ожидаемому одному соответствующему bean-кJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring @Bean с именем рядом с @Qualifier с внедрением конструктора приводит к «ожидаемому одному соответствующему bean-к

Сообщение Anonymous »

У меня есть следующий класс конфигурации, в котором я генерирую все свои bean-компоненты, все работало отлично, пока мне не понадобился второй экземпляр того же bean-компонента:
@Configuration
@EnableScheduling
@EnableConfigurationProperties({
ConfigA.class,
ConfigB.class,
ConfigC.class
})
public class ApplicationConfiguration {

@Bean("externalApiClient")
WebClient externalApiClient(ConfigA configA) {

WebClient webClient =
WebClient.builder()
.baseUrl(configA.getApiBaseUrl())
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.build();

return webClient;
}

@Bean("selfApiClient")
WebClient selfApiClient(ConfigA configA) {

WebClient webClient =
WebClient.builder()
.baseUrl(configA.getBaseUrl())
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.build();

return webClient;
}
}

Ниже приведен мой сервис, который использует два bean-компонента посредством внедрения конструктора:
@Service
public class MyService {

private final WebClient selfApiClient;
private final WebClient externalApiClient;

public MyService(
@Qualifier("selfApiClient") WebClient selfApiClient,
@Qualifier("externalApiClient") WebClient externalApiClient) {
this.selfApiClient = selfApiClient;
this.externalApiClient = externalApiClient;
}
}

Что приводит к следующей ошибке, хотя до того, как мне понадобился второй экземпляр, все работало:

org.springframework. beans.factory.NoUniqueBeanDefinitionException: нет подходящего bean-компонента типа «org.springframework.web.reactive.function.client.WebClient»: ожидался один соответствующий bean-компонент, но найдено 2: selfApiClient,externalApiClient

Я также добавил это в свой build.gradle после прочтения некоторых сообщений о включении флага параметров компилятора Java:compileJava {
options.compilerArgs += [
'-parameters'
]
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -results-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»