这篇文章主要为大家展示了“Springboot2.xRabbitTemplate默认消息持久化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Springboot2.xRabbitTemplate默认消息持久化的示例分析”这篇文章吧。之前在Java直接测试mq消息持久化时,采取如下的配置实现消息的持久化:其中针对BasicProperties
中的源码信息为:参照博客:消息应答(autoAck)、队列持久化(durable)以及消息持久化上面的配置是Java直接测试时,所需要编写的代码逻辑,如果采取springboot配置,则会出现默认消息持久化
的现象。至于测试案例,可以参考下列博客:SpringBoot整合RabbitMQ实现消息确认机制首先将消息消费者
代码进行注释
。执行接口,创建消息存入队列中。要想知道为什么消息会自动持久化
,则需要关注rabbitTemplate.convertAndSend(exchange,routingKey,msg)
这个方法。从源码执行逻辑可以看出:rabbitTemplate
提供的消息加载至队列中,采取的数据类型为Object
,但在其源码逻辑中,又将Object
消息类型,进行了this.convertMessageIfNecessary(object)
处理,将object
对象类型转化为Message
对象类型。从此处可以看出,rabbitTemplate
为了让开发者处理数据更简单,将消息持久化
等操作默认进行了配置
。现在,一起来看convertMessageIfNecessary(object)
做了什么?判断当前免费云主机域名的数据类型,是否是Message类型
。如果是Message
类型,则直接将其强转Message
。
如果不是,则执行了新的方法,将其转换了一次。转换过程如下所示:后面的就不深入了。那持久化的默认配置在哪进行的?
回到最初的convertAndSend
执行方法。该参数由类创建加载时生成,其数据如下所示:也就是说,在convertMessageIfNecessary
时,会判断传递的参数类型是否为Message
类型,如果不是则需要再包装一次。如果不想设定消息持久化
,传递的数据类型为Message
类型即可!以上是“Springboot2.xRabbitTemplate默认消息持久化的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!
小编给大家分享一下怎么使用canvas绘制折线路径动画,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果用canvas来绘制,其中的难点在于:需要计算子路径,这块计算比较复杂。(当然…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。