package com.gong.springbootrabbitmq; import com.gong.springbootrabbitmq.bean.Book; import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; 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; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @RunWith(SpringRunner.class) @SpringBootTest public class SpringbootRabbitmqApplicationTests { @Autowired RabbitTemplate rabbitTemplate; @Autowired AmqpAdmin amqpAdmin; @Test public void contextLoads() { //点对点消息 //rabbitTemplate.send(exchange,routeKey,message);message需要自定义消息内容和消息头 //rabbitTemplate.convertAndSend(exchange,routeKey,object);主需要传入要发送的对象,会自动序列化发送给rabbitmq, // object默认当成消息体 Map<String,Object> map = new HashMap<>(); map.put("msg","这是第一个消息"); map.put("data", Arrays.asList("hello",123,true)); rabbitTemplate.convertAndSend("exchange.direct","gong.news", new Book("王者荣耀","寒冰")); } @Test public void testRecieve(){ Object receiveAndConvert = rabbitTemplate.receiveAndConvert("gong.news"); System.out.println(receiveAndConvert.getClass()); System.out.println(receiveAndConvert); } @Test public void testMsg(){ rabbitTemplate.convertAndSend("exchange.fanout","", new Book("王者荣耀","寒冰")); } @Test public void testAmqpAdmin(){ //创建交换器 amqpAdmin.declareExchange(new DirectExchange("amqpAdmin.exchange")); //创建队列 amqpAdmin.declareQueue(new Queue("amqpAdmin.queue",true)); //绑定 amqpAdmin.declareBinding(new Binding("amqpAdmin.queue",Binding.DestinationType.QUEUE, "amqpAdmin.exchange","amqp.news",null)); } }