Spring AMQP и Kotlin - объединить все объявления в коллекцию - PullRequest
0 голосов
/ 15 марта 2019

Как объединить все объявления очередей, обменов и привязок к коллекции в 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"))
}

UPDATE

В Java у меня была версия Spring 1.5.9 и в Kotlin 2.1.1.Начиная с версии 2.1 List<Declarable> устарела и использовать деклараторы

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

1 Ответ

0 голосов
/ 15 марта 2019

Начиная с версии 2.1, используйте Declarables для переноса списка вместо необработанного списка.

Использование List<Declarable> устарело; он все еще поддерживается, но вы должны установить для свойства declareCollections администратора значение true.

...