Может ли свойство, разделенное запятой, определять очереди для прослушивания? Цель состоит в том, чтобы иметь возможность изменять имена очередей и количество очередей без изменения кода.@RabbitListener - определение очередей из свойств
Я определил очереди в моем application.properties
так:
my.aggregate.queues=/some/queue,/some/other/queue
Я могу включать имена очереди как списки с помощью SpEL, как так:
@Value("#{'${my.aggregate.queues}'.split(',')}")
Однако, когда я пытаю для прослушивания очередей с использованием аннотации @RabbitListener
. Я нахожу, что я должен определить очереди отдельно. Использование
@RabbitListener(queues = { "#{'${my.aggregate.queues}'.split(',')}" })
вызывает имена очередей должны быть решены в виде массива строк, но не один, способный быть использованы:
@RabbitListener can't resolve '[Ljava.lang.String;@5396eeb1' as either a String or a Queue
Я пробовал различные другие комбинации SPEL без успеха. Есть ли способ использовать SpEL для динамического определения очередей?
Спасибо, Гэри, я открою проблему. Я работал над этим программным способом. Было бы предпочтительным способ указания массива в аннотации @RabbitListener, и я согласен с вашим заключением в вашем редактировании. –