Rabbit监听器注释从yaml获取队列名称

时间:2017-09-08 23:20:07

标签: spring-boot rabbitmq spring-rabbitmq

我目前将兔子监听器注释设置为:

@RabbitListener(队列="我的队列")

是否无法从我的yaml文件中提取队列名称。我想这样做的原因是,我可以通过更改yaml文件中的队列名称将队列更改为测试队列以进行集成测试。看来注释必须接受一个常量字符串,有没有办法围绕这个?谢谢,

1 个答案:

答案 0 :(得分:7)

是的,它被称为properties place holder,可以这样做:

@RabbitListener(queues = "${myQueue.property}")

在您的yaml中确切声明myQueue.property

https://docs.spring.io/spring-amqp/docs/1.7.3.RELEASE/reference/html/_reference.html#async-annotation-driven

  

参数名称,值和类型可以是属性占位符($ {...})或SpEL表达式(#{...})。名称必须解析为String; type的表达式必须解析为Class或类的完全限定名称。该值必须解析为可以由DefaultConversionService转换为类型的内容(例如上例中的x-message-ttl)。