消息序列化
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();
}
接收和发送服务都需要添加。
发一个map消息:
@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格式传输到mq了,非常不错。