package com.rabbitmqspringboot.demo;
import com.DemoApplication;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = DemoApplication.class)
@RunWith(SpringRunner.class)
class DemoApplicationTests {
//注入mq
@Autowired
private RabbitTemplate rabbitTemplate;
//topic模式
@Test
public void testtopic(){
rabbitTemplate.convertAndSend(“topics”,“user.sexy”,“这是user.sexy的消息”);
}
//路由模式
@Test
public void direct(){
rabbitTemplate.convertAndSend(“directs”,“info”,“发送的info的路由key”);
}
//发布订阅 fanout模型
@Test
public void fanout(){
rabbitTemplate.convertAndSend(“logs”,"",“这是fanout模型”);
}
//work模型
@Test
public void testwork(){
for (int i = 0; i <10 ; i++) {
rabbitTemplate.convertAndSend(“work”,“hello workQueue”);
}
}
//hello world模型
@Test
public void test(){
//前3种没有用到交换机的第一个默认是队列名称
rabbitTemplate.convertAndSend(“hello”,“hello world”);
}
}
没有消费者就不会生成
topic
@Component
public class costomer5 {
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(value = “topics”,type = “topic”),
key = {“com.xiaoyu”,“user.*”}
)
})
public void consumerT1(String msg){
System.out.println(“消费者1消费了”+msg);
}
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(value = "topics",type = "topic"),
key = {"com.#","user.*"}
)
})
public void consumerT2(String msg){
System.out.println("消费者2消费了"+msg);
}
@RabbitListener(bindings = {
@QueueBinding(
value = @Queue,
exchange = @Exchange(value = "topics",type = "topic"),
key = {"com.xiaoyu","*.user.*"}
)
})
public void consumerT3(String msg){
System.out.println("消费者3消费了"+msg);
}
}
work
@Component
public class Costomer2 {
//一个消费者
@RabbitListener(queuesToDeclare = @Queue(value = “work”))
public void consume(String msg){
System.out.println(“msg=”+msg);
}
//第二个
@RabbitListener(queuesToDeclare = @Queue(value = "work"))
public void consume2(String msg){
System.out.println("msg1"+msg);
}
}
hello
@Component
@RabbitListener(queuesToDeclare = @Queue(value = “hello”,durable = “true”,autoDelete = “true”))
public class costomer1 {
@RabbitHandler
public void receive(String msg){
System.out.println(“message=”+msg);
}
}