注意路由模式使用了key
1.使用注解@RabbitListener @QueueBinding同时完成路由交换机的创建与绑定监听
@Component
public class MqListener {
@RabbitListener(queues = "xzh")
public void listenXzhQueue(String mess){
System.out.println("mq消费消息:"+mess);
}
@RabbitListener(queues = "fanout.queue1")
public void listenFanoutQueue1(String mess){
System.out.println("fanout1:"+mess);
}
@RabbitListener(queues = "fanout.queue2")
public void listenFanoutQueue2(String mess){
System.out.println("fanout2:"+mess);
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue("direct.queue1"), //队列
exchange = @Exchange(value = "direct",type = ExchangeTypes.DIRECT), //交换机
key = {"red","blue"} //key
))
public void listenDirectQueue1(String mess){
System.out.println("direct.queue1"+mess);
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue("direct.queue2"),
exchange = @Exchange(value = "direct",type = ExchangeTypes.DIRECT),
key = {"red","yellow"}
))
public void listenDirectQueue2(String mess){
System.out.println("direct.queue2"+mess);
}
}
2.运行程序查看交换机注册情况
3.发布者发布信息测试类中测试
@Test
public void directTest(){
//交换机名字
String exchangeName="direct";
//消息
String mess="hello red!";
rabbitTemplate.convertAndSend(exchangeName,"red",mess);
}
结果:
更改key测试