2.3 版本相较于 2.2 版本的变更
本节描述了版本 2.2 和版本 2.3 之间的变化。有关之前版本的变化,请参见变更历史。
连接工厂变更
现在提供了两个额外的连接工厂。更多信息请参见选择连接工厂。
@RabbitListener
变更
你现在可以指定回复内容类型。更多信息请参见回复内容类型。
消息转换器更改
Jackson2JMessageConverter
现在可以在 ObjectMapper
配置了自定义反序列化器的情况下反序列化抽象类(包括接口)。更多信息请参阅 反序列化抽象类。
测试更改
提供了一个新的注解 @SpringRabbitTest
,用于在你不使用 SpringBootTest
时自动配置一些基础设施 Bean。更多信息请参见 @SpringRabbitTest。
RabbitTemplate 变更
模板的 ReturnCallback
已重构为 ReturnsCallback
,以便在 lambda 表达式中更简单地使用。有关更多信息,请参阅 相关发布者确认和返回。
在使用回调和相关确认时,CorrelationData
现在需要一个唯一的 id
属性。更多信息请参见 相关发布者确认和回调。
在使用 direct reply-to 时,你现在可以配置模板,使得服务器不需要在回复中返回关联数据。有关更多信息,请参阅 RabbitMQ Direct reply-to。
监听器容器变更
现在可以使用一个新的监听器容器属性 consumeDelay
;它在使用 RabbitMQ 分片插件 时非常有用。
默认的 JavaLangErrorHandler
现在会调用 System.exit(99)
。要恢复到之前的行为(不执行任何操作),请添加一个无操作的处理程序。
容器现在支持 globalQos
属性,以便在通道上全局应用 prefetchCount
,而不是为通道上的每个消费者单独应用。
有关更多信息,请参见 消息监听器容器配置。
MessagePostProcessor 变更
现在,压缩的 MessagePostProcessor
使用逗号而不是冒号来分隔多个内容编码。解压缩器可以处理这两种格式,但如果你使用此版本生成的消息,并且这些消息由早于 2.2.12 的版本消费,你应该将压缩器配置为使用旧的分隔符。更多信息请参见修改消息 - 压缩及其他中的重要说明。
多 Broker 支持改进
有关更多信息,请参阅多代理(或集群)支持。
RepublishMessageRecoverer 更改
没有提供支持发布者确认的恢复器的新子类。有关更多信息,请参阅消息监听器和异步情况。