新增功能
4.0 版本自 3.2 版本以来的变化
spring-rabbitmq-client 模块
引入了新的 spring-rabbitmq-client 模块(具有相同的 artifact 名称)。自 4.0 起,它是 RabbitMQ 特有的 AMQP 1.0 协议实现,并基于 com.rabbitmq.client:amqp-client 库。
有关更多信息,请参阅 RabbitMQ AMQP 1.0 支持。
JUnit 4 工具的弃用
最新的 JUnit 4 版本是 2021 年 2 月的 4.13.2,下一个 JUnit 6 将基于 Java 17。无需保留过时的工具,建议迁移到 JUnit Jupiter 的相应工具。
MessageListenerContainer 更改
SimpleMessageListenerContainer 现在在其关闭时最多等待 shutdownTimeout 时间,以获取来自所提供的 RabbitTemplate 监听器的待处理回复。
迁移到 Spring Core Retry
项目中 Spring Retry API 及其用法已替换为 spring-core 模块中类似的 API。相应的 org.springframework.retry:spring-retry 依赖项已移除。这是一个重大更改,但对于当前新一代的整个 Spring 组合来说是合理的。请参阅新的便捷类:StatelessRetryOperationsInterceptor 和 StatefulRetryOperationsInterceptor。SendRetryContextAccessor 已移除,取而代之的是 MessageRecoverer 契约。失败的 replyTo 地址可以从重试耗尽后传播到上述 MessageRecoverer 的 ReplyFailureException 中获取。