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