2. 新增功能

2.1. 自3.0以来的更改(自2.4版)

2.1.1. Java 17, Spring Framework 6.0

此版本需要 Spring Framework 6.0 和 Java 17spring-doc.cadn.net.cn

2.1.2. 远程处理

远程调用功能(使用 RMI)已不再支持。spring-doc.cadn.net.cn

2.1.3. 观察

现在支持使用 Micrometer 启用计时器和追踪的观察功能。 有关更多信息,请参阅 Micrometer 观察spring-doc.cadn.net.cn

2.1.4. 原生映像

支持创建原生映像。
请参阅 原生映像 了解更多信息。spring-doc.cadn.net.cn

2.1.5. 异步RabbitTemplate

The AsyncRabbitTemplate 现在返回CompletableFuture 而不是 ListenableFuture

spring-doc.cadn.net.cn

有关更多信息,请参阅异步Rabbit模板spring-doc.cadn.net.cn

2.1.6. 流支持更改

RabbitStreamOperationsRabbitStreamTemplate 方法现在返回 CompletableFuture,而不是 ListenableFuture

现在支持超级流以及其上的单个活跃消费者。spring-doc.cadn.net.cn

有关更多信息,请参阅使用RabbitMQ流插件spring-doc.cadn.net.cn

2.1.7. @RabbitListener变更

批处理监听器现在可以消耗Collection<?>以及List<?>。批次消息适配器现在确保方法适用于消耗批次。当设置容器工厂consumerBatchEnabledtrue时,batchListener属性也设置为true@RabbitListener with Batching获取更多信息。spring-doc.cadn.net.cn

MessageConverter 现在可以在值为 Optional.empty() 时返回 Optional.empty();这目前是由 Jackson2JsonMessageConverter 实现的。
有关更多信息,请参阅Message 转换spring-doc.cadn.net.cn

您现在可以通过容器工厂配置 ReplyPostProcessor,而不是通过@RabbitListener上的属性进行配置。有关更多信息,请参阅回复管理spring-doc.cadn.net.cn

现在可以将 @RabbitListener(以及@RabbitHandler)方法声明为 Kotlin 的 suspend 函数。有关更多信息,请参阅异步 @RabbitListener 返回类型spring-doc.cadn.net.cn

从版本 3.0.5 开始,具有异步返回类型(包括 Kotlin 悬挂函数)的监听器在发生失败后会调用 RabbitListenerErrorHandler(如果已配置)。spring-doc.cadn.net.cn

2.1.8. 连接工厂更改

Spring 框架默认的addressShuffleModeAbstractConnectionFactory中现在是RANDOM。当提供多个地址时,这会导致连接到随机主机。连接到群集了解更多信息。spring-doc.cadn.net.cn

LocalizedQueueConnectionFactory 不再使用 RabbitMQ http-client 库来确定队列的领导节点。 队列亲和性及 LocalizedQueueConnectionFactory 获取更多信息。spring-doc.cadn.net.cn