自1.5以来1.6版本的变化
测试支持
现在提供了一个新的测试支持库。 更多信息请参见测试支持。
架构工人
提供流畅API用于配置的构建器队列和交换物品现已开放。
更多信息请参见构建器API中的队列和交换。
监听器容器变更
空闲消息监听器检测
你现在可以配置监听器容器来发布ApplicationEvent闲置时的时刻。
更多信息请参见“检测闲置异步消费者”。
不匹配队列检测
默认情况下,当监听器容器启动时,如果检测到属性或参数不匹配的队列,
容器会记录异常,但会继续监听。
容器现在拥有一个性质,称为不匹配队列致命,防止容器(及上下文)发生
如果启动时检测到问题,就启动。
如果问题后来被检测到,比如连接失败恢复后,它还会停止容器。
更多信息请参见消息监听器容器配置。
默认错误处理程序
默认的错误处理程序(条件拒绝错误处理)现在认为不可恢复@RabbitListener例外判定为致命。
更多信息请参见例外处理。
自动宣告和兔子管理员实例
参见消息监听器容器配置 (自动声明)对该选项的语义在使用上有所变化
之兔子管理员应用上下文中的实例。
Amqp模板: 收发并有暂停
一些新的接收()方法:超时已为Amqp模板以及其兔子模板实现。
更多信息请参见民调消费者。
用异步兔子模板
一个新的异步兔子模板已经被引入。
该模板提供了多种发送和接收方法,其中返回值为可听未来,可以
之后可以用来同步或异步获得结果。
更多信息请参见异步兔子模板。
兔子模板变化
1.4.1 引入了在代理支持时使用直接回复的功能。
这比为每个回复使用临时队列更高效。
这个版本允许你通过设置useTemporaryReplyQueues属性到true.
更多信息请参见RabbitMQ直接回复。
这兔子模板现在支持一个用户ID-表达式 (用户ID表达当使用 Java 配置时)。
更多信息请参见已验证的用户IDRabbitMQ文档和验证用户ID。
消息属性
用相关性
这关联Id消息属性现在可以是字符串.
更多信息请参见消息属性转换器。
长字符串首部
此前,默认消息属性转换器“转换”的头部长度超过长字符串限制(默认1024)
转给DataInputStream(实际上,它提到了长绳实例DataInputStream).
输出时,该头部不会被转换(除非转换为字符串——例如,java.io.DataInputStream@1d057a39通过呼叫toString()在直播中)。
随着这次发布,Long长绳实例现为长绳实例默认存在。
您可以通过以下方式访问这些内容getBytes[],toString()或getStream()方法。
一来袭长绳现在输出时也正确“转换”了。
更多信息请参见消息属性转换器。
兔子管理员变化
宣告失败
此前,忽略声明失败该旗帜仅在IOException频道上的(如“mis-matched”
争论)。
现在,它适用于任何例外情况(例如超时例外).
此外,还有一个DeclarationExceptionEvent现在,只要声明失败,才会被公布。
这兔子管理员最后声明事件也作为属性可用lastDeclarationExceptionEvent.
更多信息请参见配置经纪人。
@RabbitListener变化
每颗豆子要有多个容器
当你使用 Java 8 或更高版本时,现在可以添加多个@RabbitListener注释@Bean类别或
他们的方法。
使用Java 7或更早版本时,可以使用@RabbitListeners容器注释以提供相同的功能
功能性。
看@Repeatable @RabbitListener更多信息请见。
@SendToSpEL表达式
@SendTo对于没有回复属性现在可以是针对
请求/回复。
更多信息请参见回复管理。
@QueueBinding改进
你现在可以在@QueueBinding附注。
头部交换现已支持@QueueBinding.
更多信息请参见注释驱动监听器端点。
延迟消息交换
Spring AMQP 现在对 RabbitMQ 延迟消息交换插件提供了一流的支持。 更多信息请参见延迟消息交换。
交易所内部旗帜
任何交换定义现在可以标记为内部和兔子管理员当
宣布交换。
更多信息请参见配置经纪人。
缓存连接工厂变化
缓存连接工厂缓存统计
这缓存连接工厂现在在运行时和 JMX 上提供缓存属性。
更多信息请参见运行时缓存属性。
访问底层的RabbitMQ连接工厂
新增了一个进气口,以便进入底层工厂。 例如,你可以用这个获取器添加自定义连接属性。 更多信息请参见“添加自定义客户端连接属性”。
通道缓存
默认信道缓存大小已从1增加到25。 更多信息请参见连接与资源管理。
此外,SimpleMessageListenerContainer不再将缓存大小调整到至少与数字相当
之并发消费者——这其实是多余的,因为容器消费者通道从未被缓存。
Java 反序列化
现在你可以在使用 Java 反序列化时配置一个“允许列表”的允许类。 如果你接受包含序列化 Java 对象的消息,建议考虑创建一个允许列表 不可信的消息来源。 更多信息请参见 amqp/message-converters.adoc#java-deserialization[Java Deserialization]。
JSON消息转换器
JSON消息转换器的改进现在允许使用没有类型信息的消息
在消息头部。
参见注释方法的消息转换和Jackson2JsonMessageConverter更多信息请见。