Spring AMQP无法创建Bean以返回List <binding>

时间:2019-02-28 20:38:23

标签: java spring-rabbitmq

我正在尝试使用2.1.2版本的Spring AMQP创建与主题交换的多个绑定。

我发现了这个问题:How to setup multiple topics in a RabbitMQ Java config class using Spring Framework?

似乎有答案。我还发现documention提供了相同的解决方案。

但是,当我在Bean中返回一个List时,并没有创建绑定。如果我返回一个Binding,那么它确实起作用。由于缺乏声誉,我无法在该问题上添加评论。

这是我的代码:

    @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”主题绑定,但是在查看Rabbit Management控制台时看不到“ t1”或“ t2”。

请帮助,因为此代码看起来非常简单,并且遵循文档。我想念什么?

谢谢

1 个答案:

答案 0 :(得分:1)

您指的是非常古老的文档。根据您使用的版本,已经有一个Declarables容器而不是List可以使用:https://docs.spring.io/spring-amqp/docs/2.1.4.RELEASE/reference/#collection-declaration