public void sendCommentMessage(String event) { rabbitTemplate.convertAndSend("exchange", "comment", event); } 消息队列的生产者不能传入自定义的实体类怎么办
时间: 2023-12-14 12:36:53 浏览: 113
消息队列的生产者一般只能发送字符串或字节数组等基本类型的数据,如果需要发送自定义的实体类,可以将实体类转换为字符串或字节数组,再进行发送。常见的做法是使用 JSON 格式将实体类序列化为字符串,然后发送。具体实现可以使用 JSON 序列化框架,如 Jackson 或 Gson。示例代码如下:
```
// 将实体类转换为 JSON 字符串
String json = new ObjectMapper().writeValueAsString(entity);
// 发送消息
rabbitTemplate.convertAndSend("exchange", "comment", json);
```
接收方在消费消息时,需要将 JSON 字符串反序列化为实体类。示例代码如下:
```
// 接收消息
String json = (String) rabbitTemplate.receiveAndConvert("comment");
// 将 JSON 字符串反序列化为实体类
Entity entity = new ObjectMapper().readValue(json, Entity.class);
```
阅读全文