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