新增功能
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 中獲取。