SpringAMQP消息转换器
可以看到SpringAMQP发送方法中,发送消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化成字节后发送


Spring的对象系处理器是由org.springframework.amqp.support.converter.MessageConverter来处理的,而默认实现就是SimpleMessageConverter,基于JDK的ObjectOutputStream完成序列化,如果要修改只需要定义一个MessageConverter类型的Bean即可.
步骤
1.引入依赖
这里的工程目录结构是这样的,一个父工程下有两个子模块一个是消息的发布者,一个是消息的接受者。因为这个依赖是两个模块都要用到的,所以直接在父工程中引入即可。

2.声明MessageConverter的Bean类型
这里我们在启动类声明
@Bean
public MessageConverter jsonMessageConverter(){
return new Jackson2JsonMessageConverter();
}
消息发送者:publish
@Test
void testSendObjectQueue(){
//发送的消息
Map<String, Object> message = new HashMap<>();
message.put("name", "柳岩");
message.put("age",21);
//发送消息
rabbitTemplate.convertAndSend("object.queue",message);
}
消息接收者:cosumer
@RabbitListener(queues = "object.queue")
public void listenerObjectQueue(Map<String,Object> receiveMsg){
System.out.println("接收到object.queue的消息为: "+receiveMsg);
}

浙公网安备 33010602011771号