Spring AMQP не может создать bean-компонент для возврата List‹Binding›

Я пытаюсь использовать Spring AMQP версии 2.1.2.release для создания нескольких привязок к обмену темами.

Я нашел этот вопрос: Как настроить несколько тем в классе конфигурации RabbitMQ Java с помощью Spring Framework?

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

Однако привязки не создаются, когда я возвращаю список в свой компонент. Если я верну одну привязку, то это сработает. Я не могу добавить комментарий к этому вопросу из-за отсутствия репутации.

Вот мой код:

    @Bean
public TopicExchange topicExchange() {
    return new TopicExchange("topicExchange");
}

@Bean
public Queue testQueue() {
    return new Queue("testQueue");
}

@Bean
List<Binding> multipleBindings() {
    return Arrays.asList(
            BindingBuilder.bind(testQueue()).to(topicExchange()).with("t1"),
            BindingBuilder.bind(testQueue()).to(topicExchange()).with("t2"));
}

@Bean
Binding singleBinding() {
    return BindingBuilder.bind(testQueue()).to(topicExchange()).with("t3");
}

В этом коде я получаю привязку темы «t3», но не вижу «t1» или «t2», когда смотрю на консоль управления Rabbit.

Пожалуйста, помогите, так как этот код выглядит очень простым и соответствует документации. Что мне не хватает?

Спасибо


person Kevin King    schedule 28.02.2019    source источник


Ответы (1)


Вы ссылаетесь на очень старую документацию. В соответствии с используемой вами версией уже существует контейнер Declarables вместо List: https://docs.spring.io/spring-amqp/docs/2.1.4.RELEASE/reference/#collection-декларация

person Artem Bilan    schedule 28.02.2019