|
对于最新稳定版本,请使用Spring AMQP 4.0.0! |
自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在通道上(例如不匹配的参数)。现在对任何例外(例如超时例外). 此外,还有一个DeclarationExceptionEvent现在,只要声明失败,才会被公布。 这兔子管理员最后声明事件也作为属性可用lastDeclarationExceptionEvent. 更多信息请参见配置经纪人。
@RabbitListener变化
每颗豆子要有多个容器
当你使用 Java 8 或更高版本时,现在可以添加多个@RabbitListener注释@Bean类或他们的方法。使用 Java 7 或更早版本时,可以使用@RabbitListeners容器注释以提供相同的功能 功能性。 看@Repeatable @RabbitListener更多信息请见。
@SendToSpEL表达式
@SendTo对于没有回复属性现在可以作为针对请求/回复进行评估的 SpEL 表达式。更多信息请参见回复管理。
@QueueBinding改进
你现在可以在@QueueBinding附注。 头部交换现已支持@QueueBinding. 更多信息请参见注释驱动监听器端点。
延迟消息交换
Spring AMQP 现在对 RabbitMQ 延迟消息交换插件提供了一流的支持。更多信息请参见延迟消息交换。
交易所内部旗帜
任何交换定义现在可以标记为内部和兔子管理员当宣布交换时,将价值传递给经纪人。更多信息请参见配置经纪人。
缓存连接工厂变化
缓存连接工厂缓存统计
这缓存连接工厂现在在运行时及 JMX 上提供缓存属性。更多信息请参见运行时缓存属性。
访问底层的RabbitMQ连接工厂
新增了一个获取器以提供访问底层工厂的权限。例如,您可以使用该获取器添加自定义连接属性。更多信息请参见添加自定义客户端连接属性。
通道缓存
默认信道缓存大小已从1增加到25。更多信息请参见连接与资源管理。
此外,SimpleMessageListenerContainer不再将缓存大小调整到至少与数字相当 之并发消费者——这其实是多余的,因为容器消费者通道从未被缓存。
Java 反序列化
当你使用 Java 反序列化时,现在可以配置一个允许的类“允许列表”。如果你接受来自不可信来源的序列化 Java 对象的消息,应考虑创建一个允许列表。更多信息请参见 Java 反序列化。
JSON消息转换器
JSON消息转换器的改进现在允许使用没有类型信息的消息在消息头部中。更多信息请参见注释方法的消息转换和[json-message-converter]。