SpringCloud使用RabbitMQ首先添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
第一种:指定队列名称,需要事先创建队列 myQueue
@RabbitListener(queues = "myQueue")
第二种:如果没有命名队列会自动创建队列 myQueue
@RabbitListener(queuesToDeclare = @Queue("myQueue"))
前两种的测试方法
@Autowired
private AmqpTemplate amqpTemplate;
@Test
public void send(){
amqpTemplate.convertAndSend("myQueue","now"+new Date());
}
第三种:队列绑定交换机
@RabbitListener(bindings = @QueueBinding(value = @Queue("phoneOrder"),
exchange = @Exchange("myOrder"),key = "phone"))
注:交换机绑定对应的队列,根据交换机,key,寻找绑定队列,例如下面代码
@RabbitListener(bindings = @QueueBinding(value = @Queue("computerOrder"),
exchange = @Exchange("myOrder"),key = "computer"))
public void processComputer(String message){
log.info("MqReceiver:{}",message);
}
@RabbitListener(bindings = @QueueBinding(value = @Queue("phoneOrder"),
exchange = @Exchange("myOrder"),key = "phone"))
public void processPhone(String message){
log.info("MqReceiver:{}",message);
}
测试代码
@Autowired
private AmqpTemplate amqpTemplate;
@Test
public void sendOrder(){
amqpTemplate.convertAndSend("myOrder","computer","computer now"+new Date());
amqpTemplate.convertAndSend("myOrder","phone","phone now"+new Date());
}
得到测试日志
2020-01-15 21:53:14.802 INFO 13492 --- [ntContainer#0-1] ppc.order.message.MqReceiver : MqReceiver:phone nowWed Jan 15 21:53:14 CST 2020
2020-01-15 21:53:14.802 INFO 13492 --- [ntContainer#1-1] ppc.order.message.MqReceiver : MqReceiver:computer nowWed Jan 15 21:53:14 CST 2020