Spring ожидал один совпадающий компонент, но нашел 2JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring ожидал один совпадающий компонент, но нашел 2

Сообщение Anonymous »

У меня есть такой класс конфигурации Spring, где мне нужно настроить две разные очереди:

Код: Выделить всё

@Configuration
public class DataQueue {

/**
* Queue to store the {@link SlowVars} read from the PLC
* @return the queue
*/
@Bean
Set slowVarsQueue() {
return new CopyOnWriteArraySet();
}

/**
* Queue to store the {@link JsonNode} events
* @return the queue
*/
@Bean
Set eventsQueue() {
return new CopyOnWriteArraySet();
}
}
В классе, где мне нужно использовать одну очередь, я написал:

Код: Выделить всё

@Log4j2
@RestController
@AllArgsConstructor
public class EventsApiImpl implements EventsApi {

private Set eventsQueue;
private MariaEventService mariaEventService;
private EventManipulationService eventManipulationService;
private ObjectMapper mapper;

// lots of methods

}
к сожалению, Springs выдает ошибку при запуске:

Код: Выделить всё

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean
with name 'slowVarsApiImpl': Unsatisfied dependency expressed through constructor parameter 0:
No qualifying bean of type 'java.util.Set[com.fasterxml.jackson.databind.JsonNode]' available:
expected single matching bean but found 2: slowVarsQueue,eventsQueue
У этих двух bean-компонентов разные имена: одно — медленныйVarsQueue, а другое — eventQueue, почему Spring жалуется?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ut-found-2
Ответить

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

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

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

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

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