此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring AMQP 3.2.6! |
监听多个队列
当您使用queues
属性,您可以指定关联的容器可以监听多个队列。
您可以使用@Header
注释,使从中接收消息的队列名称可供 POJO 使用
方法。
以下示例显示了如何执行此作:
@Component
public class MyService {
@RabbitListener(queues = { "queue1", "queue2" } )
public void processOrder(String data, @Header(AmqpHeaders.CONSUMER_QUEUE) String queue) {
...
}
}
从 1.5 版开始,您可以使用属性占位符和 SpEL 将队列名称外部化。 以下示例显示了如何执行此作:
@Component
public class MyService {
@RabbitListener(queues = "#{'${property.with.comma.delimited.queue.names}'.split(',')}" )
public void processOrder(String data, @Header(AmqpHeaders.CONSUMER_QUEUE) String queue) {
...
}
}
在 1.5 版之前,只能以这种方式指定单个队列。 每个队列都需要一个单独的属性。