使用RabbitMQ发送和接收对象
消息转换器
当消息生产者发送的数据为对象时,接受到的信息如下,需要通过转换器将其转为易读、容量小的数据

配置JSON转换器
1.导入依赖
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.10</version>
</dependency>
2.在消息生产者和消费者的配置类或新建MessageConverterConfig类中添加Bean
@Bean
public MessageConverter messageConverter() {
Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
jackson2JsonMessageConverter.setCreateMessageIds(true);
return jackson2JsonMessageConverter;
}
3.生产者发送消息为对象,消费者使用对象接收即可,对象需要实现Serializable
@Test
public void sendTopicMessage() {
String topicExchange = "topic.exchange";
User user = new User();
user.setName("debu");
user.setAge(18);
user.setHeight(230);
amqpTemplate.convertAndSend(topicExchange, "user.info", user);
}
@RabbitListener(queues = "topic1.queue")
public void getTopicMessage3(User user) {
log.info("消费者user号 收到消息:{}", user);
log.info("user的name是:{}",user.getName());
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY