首先我们要了解什么是消息序列化?
消息序列化
Spring默认会把你发送的消息通过JDK序列化为字节发送给MQ,接收消息的时候,再把字节反序列化为java对象。
对此
我们可以配置JSON方式来序列化,这样体积更小,可读性更高。
首先在我们项目中引入依赖:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
并添加一个配置类(注意:消息的发送方和接收方都需要添加该配置类)
@Bean
public MessageConverter jsonMessageConverter(){
return new Jackson2JsonMessageConverter();
}
配置好后,我们尝试发送一个消息
@Test
public void testSendMap() throws InterruptedException {
// 准备消息
Map<String,Object> msg = new HashMap<>();
msg.put("name", "小宇");
msg.put("age", 18);
// 发送消息
rabbitTemplate.convertAndSend("simple.queue", msg);
}
}
这样我们在发送的消息就变为了Json格式