目录
1. 报错的背景
a)使用 RabbitMQ 发送消息时,发送消息的类型为 Map<String, Object>,map 里面我 put 了一个 <String, Long> 类型,如下图:
b)这里有一个前提:我清楚使用 org.springframework.amqp.rabbit.core.RabbitTemplate 来发送消息到 RabbitMQ 队列时,消息的序列化是由 MessageConverter 完成的。默认情况下,RabbitTemplate 使用 SimpleMessageConverter,基于JDK的ObjectOutputStream完成序列化。
但是这样的数据就有可能引发以下两种问题:
- 转化后数据过长,影响传输效率。
- 容易引发 sql 注入问题。
因此这里我使用 Jackson 库将对象序列化为 JSON 格式,如下消息