2.3 版本相比 2.2 版本的变更

本节介绍 2.2 版本与 2.3 版本之间的变更。有关先前版本的变更,请参阅变更历史

连接工厂变更

现提供两个额外的连接工厂。有关更多信息,请参阅选择连接工厂

@RabbitListener 变更

现在可以指定回复内容类型。有关更多信息,请参阅回复内容类型

消息转换器变更

如果使用自定义反序列化器配置了 ObjectMapper,则 Jackson2JMessageConverter 现在可以反序列化抽象类(包括接口)。有关更多信息,请参阅反序列化抽象类

测试变更

提供了一个新的注解 @SpringRabbitTest,用于在不使用 SpringBootTest 时自动配置一些基础设施 Bean。有关更多信息,请参阅@SpringRabbitTest

RabbitTemplate 变更

模板的 ReturnCallback 已重构为 ReturnsCallback,以便在 lambda 表达式中更简单地使用。有关更多信息,请参阅关联的发布者确认和返回

使用返回和关联确认时,CorrelationData 现在需要一个唯一的 id 属性。有关更多信息,请参阅关联的发布者确认和返回

使用 direct reply-to 时,现在可以配置模板,使得服务器无需在回复中返回关联数据。有关更多信息,请参阅RabbitMQ Direct reply-to

监听器容器变更

现提供一个新的监听器容器属性 consumeDelay;这在使用 RabbitMQ Sharding Plugin 时很有帮助。

默认的 JavaLangErrorHandler 现在会调用 System.exit(99)。要恢复之前的行为(不执行任何操作),请添加一个 no-op handler。

容器现在支持 globalQos 属性,以便在通道上全局应用 prefetchCount,而不是为通道上的每个消费者应用。

有关更多信息,请参阅消息监听器容器配置

MessagePostProcessor 变更

压缩用的 MessagePostProcessor 现在使用逗号分隔多个内容编码,而不是冒号。解压器可以处理这两种格式,但如果你使用此版本生成消息,而这些消息由 2.2.12 之前的版本消费,则应将压缩器配置为使用旧的分隔符。有关更多信息,请参阅修改消息 - 压缩等中的重要注意事项。

多 Broker 支持改进

有关更多信息,请参阅多 Broker(或集群)支持

RepublishMessageRecoverer 变更

现提供此恢复器的一个新子类,该子类支持发布者确认。有关更多信息,请参阅消息监听器和异步情况