Spring AMQP ----消息转换器

为什么要有消息转换器??

我们在传递消息的时候,可能会传递不同类型的消息,比如map,list等集合,甚至更加复杂的消息,但是AMQP的默认消息转换器是java提供的,他在解析的时候会进行序列化变成一段乱码。


这是一段控制台消息,采用的map传递

可以看见,直接就是乱码了,这个时候,就需要使用Jackson提供的消息转换器来保证消息的可读性。

如何使用?

首先需要导入依赖

XML 复制代码
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.9.10</version>
</dependency>

然后在用到mq的地方添加以下代码

java 复制代码
@Bean
public MessageConverter messageConverter(){
    // 1.定义消息转换器
    Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter();
    // 2.配置自动创建消息id,用于识别不同消息,也可以在业务中基于ID判断是否是重复消息
    jackson2JsonMessageConverter.setCreateMessageIds(true);
    return jackson2JsonMessageConverter;
}

这个时候再去控制台看信息,就会发现消息的可读性变高了

相关推荐
熊文豪2 分钟前
使用Python快速开发一个MCP服务器
服务器·开发语言·python·mcp
herinspace2 分钟前
管家婆软件中如何运用商品副单位
运维·服务器·数据库·windows·电脑
高洁015 分钟前
卷积神经网络(CNN)
人工智能·python·深度学习·神经网络·transformer
Channing Lewis5 分钟前
zoho crm中如何记录下已删除的子表recordid
运维·服务器·oracle
安然无虞9 分钟前
LoadRunner性能测试详解·下
python·测试工具·压力测试
倔强的石头10612 分钟前
openEuler 在云服务器环境下的系统性能评测与优化实践
运维·服务器·openeuler
信看15 分钟前
CM4树莓派开机功能-1️⃣固定网卡
开发语言·python
阿巴~阿巴~16 分钟前
HTTP进化史:从0.9到3.0的技术跃迁
linux·服务器·网络·网络协议·http
列逍17 分钟前
Linux进程(一)
linux·运维·服务器
古城小栈18 分钟前
Spring中 @Transactional 和 @Async注解 容易不消停
java·spring