Spring AMQP无法创建bean来返回List

问题描述 投票:1回答:1

我正在尝试使用Spring AMQP,版本2.1.2.release来创建多个绑定到主题交换。

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

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

但是,当我在Bean中返回List时,不会创建Bindings。如果我返回一个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”。

请帮助,因为这段代码看起来非常简单,它遵循文档。我错过了什么?

谢谢

java spring-rabbitmq
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.