消息转换器
交换机 为什么用Exchange时代码有变————待解决
接收端 为什么参数必须是String,转换??
/**
* Object创建队列和交换机
*/
@Bean //队列绑定到交换机 //交换机 为什么用Exchange时代码有变————待解决
public FanoutExchange objexchange(){ return new FanoutExchange("object_exchange"); }
@Bean
public Queue objqueue(){ return new Queue("object_queue"); }
@Bean
public Binding objbinding(Queue objqueue, FanoutExchange objexchange){
return BindingBuilder.bind(objqueue).to(objexchange);
}
@Bean //声明新队列
public Queue objqueue3test(){ return new Queue("object-queue2");
}
/**
* object测试 只有参数不同
*/
@RabbitListener(queues = "object_queue")
public void objectlistener(String msg){ // 交换机测试——正常
System.out.println(msg);
}
/* @RabbitListener(queues = "object-queue2")
public void objectlistener2test(Map<String, Object> msg){ // 队列测试——报错
System.out.println(msg);
}*/
@RabbitListener(queues = "object-queue2")
public void objectlistener2test(String msg){ // 队列测试——正常
System.out.println(msg);
}
/**
* Object
*/
@Test
public void objPublish() {
Map<String, Object> objmsg = new HashMap();
objmsg.put("name", "李四");
objmsg.put("age", "24");
String exchangeName = "object_exchange"; //指向交换机
rabbitTemplate.convertAndSend(exchangeName, "", objmsg);
}
@Test
public void objPublish2Test() {
Map<String, Object> objmessage = new HashMap();
objmessage.put("name", "张三");
objmessage.put("age", "23");
objmessage.put("add", "成都");
String queueName = "object-queue2"; //指向队列
rabbitTemplate.convertAndSend(queueName, objmessage);
}