Spring AMQP和Kotlin-将所有声明汇总到集合

时间:2019-03-15 09:11:13

标签: kotlin spring-amqp

如何在Kotlin中汇总所有队列,交换和绑定的声明?

我有正常的Java代码,它们以列表形式返回声明:

@Bean
public List<Declarable> declaration() {
    return Arrays.asList(
            new Queue("queue-1"),
            new Queue("queue-2"),
            new Queue("queue-3"),
            new Queue("queue-4"),
            new FanoutExchange("fanout-1"),
            new FanoutExchange("fanout-2"));
}

但是Kotlin上的相同代码不起作用:

@Bean
open fun declaration(): List<Declarable> {
    return Arrays.asList(
            Queue("queue-1"),
            Queue("queue-2"),
            Queue("queue-3"),
            Queue("queue-4"),
            FanoutExchange("fanout-1"),
            FanoutExchange("fanout-2"))
}

更新

在Java中,我有Spring 1.5.9版,在Kotlin 2.1.1中。 由于2.1 List<Declarable>已弃用,因此使用了Declarables

@Bean
open fun declaration(): Declarables {
    return Declarables(listOf(
            Queue("queue-1"),
            Queue("queue-2"),
            Queue("queue-3"),
            Queue("queue-4")))
}

1 个答案:

答案 0 :(得分:0)

从2.1开始,使用Declarables来包装列表而不是原始列表。

不推荐使用List<Declarable>;它仍然受支持,但是您必须将管理员的declareCollections属性设置为true。