Spring集成RabbiMQ-Spring AMQP新特性
上一篇《Spring集成RabbitMQ-使用RabbitMQ更方便》中,我们只需要添加响应jar的依赖,就可以写一个Spring集成RabbitMQ下非常简单收发消息的程序。
我们使用的spring-rabbit的版本是当前官方最新的2.0.0.M5,这篇主要介绍下最新版本的spring amqp相对老版本有哪些新特性和升级。
常规改进
ExchangeBuilder在该版本中默认会创建持久化的exchange,就是我们熟悉的durable属性
@QueueBinding注解中用到的@Exchange也默认是开启持久化的
下面这种场景要细化下,在@RabbitListener注解中使用@Queue,如果创建Queue是有名称的,则默认是持久化的,如果创建的是匿名的Queue(你可以认为是《RabbitMQ入门》中通过“String queueName = channel.queueDeclare().getQueue();”这样的方式创建的),则默认是不会持久化的。
不再使用的类
UniquelyNameQueue这个类将不再被提供使用。删除该类主要考虑的是一般不会出现需要创建一个持久化、不会被自动删除,而且队列名称又是唯一的场景。当然了,删除了该类,我们可以使用下面的这种替代方案new Queue(UUID.randomUUID().toString())
****
新增的类
该版本中新添加了一个监听容器类DirectMessageListenerContainer类,相比之前只有一个SimpleMessageListenerContainer,现在又多了个选择。
有关RabbitTemplate的变化
上篇我们简单提过,RabbitTemplate是用来收发消息的。新版本的变动主要有
在之前的版本中,RabbitTemplate是不支持事务的,但是经常被放在事务中,这是一个明显的bug,所以从版本1.6.2开始,如果你确实需要在事务中使用RabbitTemplate,那么就需要多设置一个channelTransacted变量。
新版本的RabbitTemplate现在默认使用DirectReplyToMessageListenerContainer来处理消息响应,而不是像之前那样为每个请求都创建一个消费者进行消费。注意这个DirectReplyToMessageListenerContainer是DirectMessageListenerContainer的子类。
RabbitTemplate和AsyncRabbitTemplate中的方法receiveAndConvert和convertSendAndReceiveAsType,能够通过设置参数ParameterizedTypeReference来指定返回结果的类型。是不是很灵活、很方便?
监听容器的微小变化
在之前的版本中,当调用方法basicGet比如RabbitMQ.receive()是,我们会通过MessageProperties.getMessageCount()来获取消息数目,如果没有消息的话就是0,在新版本中则返回为null
****
有关重试
MissingMessageIdAdvice这个类已经不再对外提供,转为内置了。
匿名队列的命名
AnonymousQueues现在默认的命名策略由原来的使用UUID改为Base64UrlNamingStrategy。
所有的改变都是为了更好!
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。
Spring集成RabbiMQ-Spring AMQP新特性的更多相关文章
- Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置
Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...
- Spring Framework 5 中的新特性
https://www.ibm.com/developerworks/cn/java/j-whats-new-in-spring-framework-5-theedom/index.html Spri ...
- Spring Boot 2.3.0 新特性Redis 拓扑动态感应
本文为原创文章.欢迎任何形式的转载,但请务必注明出处 冷冷https://lltx.github.io. Spring Boot 2.3 新特性优雅停机详解 Spring Boot 2.3 新特性分层 ...
- 一键式Spring集成工具 Spring Boot
最近公司使用Spring boot进行开发,稍微了解一下,不过自我感觉把集中式配置applicate.properties搞明白,注解用过Spring MVC的boot绝对没问题的 比如拦截器:@As ...
- Spring Boot 2.2.0新特性
Spring Boot 2.2.0 正式发布了,可从 repo.spring.io 或是 Maven Central 获取. 性能提升 Spring Boot 2.2.0 的性能获得了很大的提升. ...
- Spring4.1新特性——Spring缓存框架增强(转)
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
- Spring4.1新特性——Spring MVC增强
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
- Spring Boot 2.0 新特性
这是一篇总结文章,主要收集 Spring Boot 2.0 相对于 Spring Boot 1.x 的新特性,本章节并不提供实践性质的源代码.在 Spring Boot 系列文章中会持续退出实践章节. ...
- Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览
当大潮退去,才知道谁在裸泳..关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis. ...
随机推荐
- SQL Server 2012 案例教程(贾祥素)——学习笔记
第2章 SQL Server 2012概述 1.SQL(Structed Query Language),结构化查询语言. 2.SSMS(SQL Server Mangement Studio),SQ ...
- linux UART
#include <stdio.h> #include <string.h> #include <sys/types.h> #include <errno.h ...
- 第2章 rsync(一):基本命令和用法
本文目录: 2.1 说在前面的话 2.2 rsync同步基本说明 2.3 rsync三种工作方式 2.4 选项说明和示例 2.4.1 基础示例 2.4.2 "--exclude"排 ...
- 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法
这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...
- DNS,TCP,IP,HTTP,socket,Servlet概念整理
DNS,TCP,IP,HTTP,socket,Servlet概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. D ...
- (转)Spring中ThreadLocal的认识
我们知道Spring通过各种DAO模板类降低了开发者使用各种数据持久技术的难度.这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突.我们使用模板类访问底层数据,根据持久 ...
- jQuery请求后台接口
function test() { console.log("请求准备发送"); $.ajax({ type : "POST", url : "/ap ...
- 【MYSQL】ubuntu13安装mysql(转)
安装的是mysql-5.0.87-linux-i686-glibc23.tar.gz 1.解压tar.gz tar –xzf mysql-5.0.87-linux-i686-glibc23.tar.g ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- word2vec原理(三) 基于Negative Sampling的模型
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...