1、实现消息接收类
package cn.itcast.mq.config;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class Testxx {
//DirectExchange订阅
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = "direct.queue1"),
exchange = @Exchange(name = "itcast.direct",type = ExchangeTypes.DIRECT),
key = {"red","yellow"}
))
public void ListenDirectQueue1(String msg) {
System.out.println("direct.queue1接受到消息" + msg);
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(name = "direct.queue2"),//队列
exchange = @Exchange(name = "itcast.direct",type = ExchangeTypes.DIRECT),//交换机
key = {"red","blue"}//绑定key
))
public void ListenDirectQueue2(String msg) {
System.out.println("direct.queue2接受到消息" + msg);
}
}
2、重启项目
可以看到交换机和队列都已生成
3、实现消息发送测试类
给key为yellow的队列发送消息
@Test
public void testSendDirectExchange(){
//交换机名称
String exchangeName = "itcast.direct";
//消息
String msg = "Direct嘤嘤嘤";
//发送消息
rabbitTemplate.convertAndSend(exchangeName,"yellow",msg);
}
4、测试结果
可以看到key为 yellow 的direct.queue1队列接受到了消息