问题

:::tips Spring会把发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象,但是默认情况下Spring采用的序列化方式是JDK序列化,JDK序列化存在下列问题:

  • 数据体积过大
  • 有安全漏洞
  • 可读性差

因此我们使用Json来做序列化和反序列化 :::

解决

引入依赖

:::tips 在父工程中引入依赖(在消息生产者和消息消费者中都引入依赖) :::

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.dataformat</groupId>
  3. <artifactId>jackson-dataformat-xml</artifactId>
  4. <version>2.9.10</version>
  5. </dependency>

配置消息转换器

:::tips 在消息生产者和消息消费者的配置类中添加消息转换器 :::

  1. @Configuration
  2. public class XxxConfig{
  3. //配置Jackson消息转换器
  4. @Bean
  5. public MessageConverter jsonMessageConverter(){
  6. return new Jackson2JsonMessageConverter();
  7. }
  8. }