1.7 版自 1.6 版以來的變更

AMQP 用戶端程式庫

Spring AMQP 現在使用 RabbitMQ 團隊提供的 amqp-client 程式庫的全新 4.0.x 版本。此用戶端預設已設定自動復原。請參閱 RabbitMQ 自動連線/拓撲復原

4.0.x 用戶端預設啟用自動復原。雖然與此功能相容,但 Spring AMQP 有其自己的復原機制,而且通常不需要用戶端復原功能。我們建議停用 amqp-client 自動復原,以避免在 Broker 可用但連線尚未復原時收到 AutoRecoverConnectionNotCurrentlyOpenException 實例。從 1.7.1 版開始,Spring AMQP 除非您明確建立自己的 RabbitMQ 連線工廠並將其提供給 CachingConnectionFactory,否則會停用自動復原。由 RabbitConnectionFactoryBean 建立的 RabbitMQ ConnectionFactory 實例也預設停用此選項。

Log4j 2 升級

現在 (對於 AmqpAppender) 最低 Log4j 2 版本為 2.7。此框架不再與先前的版本相容。如需更多資訊,請參閱 記錄子系統 AMQP Appender

Logback Appender

此 Appender 預設不再擷取呼叫者資料 (方法、行號)。您可以透過設定 includeCallerData 組態選項來重新啟用它。如需有關可用記錄 Appender 的資訊,請參閱 記錄子系統 AMQP Appender

Spring Retry 升級

現在最低 Spring Retry 版本為 1.2。此框架不再與先前的版本相容。

關閉行為

您現在可以將 forceCloseChannel 設定為 true,以便在容器執行緒未在 shutdownTimeout 內回應關閉時,強制關閉通道,導致任何未確認的訊息重新排隊。如需更多資訊,請參閱 訊息監聽器容器設定

FasterXML Jackson 升級

現在最低 Jackson 版本為 2.8。此框架不再與先前的版本相容。

JUnit @Rules

先前由框架內部使用的規則現在已在名為 spring-rabbit-junit 的獨立 jar 中提供。如需更多資訊,請參閱 JUnit @Rules

容器條件式回滾

當您使用外部交易管理器 (例如 JDBC) 時,當您為容器提供交易屬性時,現在支援基於規則的回滾。當您使用交易建議時,現在也更具彈性。

連線命名策略

現在提供新的 ConnectionNameStrategy,以從 AbstractConnectionFactory 填入目標 RabbitMQ 連線的應用程式特定識別。如需更多資訊,請參閱 連線和資源管理

監聽器容器變更

交易回滾行為

您現在可以將訊息重新排隊在交易回滾時設定為一致,無論是否設定交易管理器。如需更多資訊,請參閱 關於接收訊息回滾的注意事項