6.3 和 6.4 之間的更改
新元件
BaseMessageBuilder 類已從 MessageBuilder 中提取出來,以簡化自定義構建器實現,其中大部分邏輯應與 MessageBuilder 相同。有關更多資訊,請參閱 MessageBuilder。
新的控制匯流排互動模型在 ControlBusCommandRegistry 中實現。建議使用新的 ControlBusFactoryBean 類來替代已棄用的 ExpressionControlBusFactoryBean。有關更多資訊,請參閱 控制匯流排。
此外,還引入了 ControlBusController(以及 @EnableControlBusController)來管理上述 ControlBusCommandRegistry 暴露的命令。有關更多資訊,請參閱 HTTP 支援。
SpEL 評估基礎設施現在支援 IndexAccessor 的配置。此外,還提供了開箱即用的 JsonIndexAccessor。有關更多資訊,請參閱 SpEL 支援。
遠端檔案介面卡更改
AbstractRemoteFileStreamingMessageSource 現在有一個方便的 clearFetchedCache() API,用於從快取中移除未處理的遠端檔案引用。這些引用之所以保留在快取中,是因為輪詢配置不允許在一個週期內處理所有已獲取的檔案,並且目標 SessionFactory 可能會在輪詢週期之間發生變化,例如透過 RotatingServerAdvice。
JDBC 更改
LobHandler(和相應的 API)在 Spring Framework 6.2 中已被棄用以供移除。JdbcMessageStore(和類似類)上的相應選項也已被棄用。序列化訊息的位元組陣列處理完全委託給 JDBC 驅動程式。
LockRepository.delete() 方法返回移除分散式鎖所有權的結果。如果鎖的所有權已過期,JdbcLockRegistry.JdbcLock.unlock() 方法會丟擲 ConcurrentModificationException。有關更多資訊,請參閱 JDBC 支援。
ZeroMQ 更改
出站元件 ZeroMqMessageHandler(和相應的 API)現在可以繫結 TCP 埠,而不是連線到給定 URL。有關更多資訊,請參閱 ZeroMQ 支援。
Redis 更改
如果鎖的所有權已過期,RedisLockRegistry.RedisLock.unlock() 方法會丟擲 ConcurrentModificationException,而不是 IllegalStateException。新增 RedisLockRegistry.setRenewalTaskScheduler() 以進行定期鎖續訂。有關更多資訊,請參閱 Redis 支援。
Groovy 更改
ControlBusFactoryBean(和相應的 <int-groovy:control-bus> XML 標籤)已棄用(以供移除),取而代之的是基於 ControlBusCommandRegistry 中實現的新模型而引入的新的 ControlBusFactoryBean。有關更多資訊,請參閱 控制匯流排。
SFTP 支援更改
DefaultSftpSessionFactory 現在公開了一個 Consumer<SshClient> 配置器屬性,以進一步自定義內部 SshClient。有關更多資訊,請參閱 SFTP 會話工廠。
MQTT 支援更改
現在可以透過 IntegrationFlowContext 使用相應的 ClientManager 在執行時新增多個 MqttPahoMessageDrivenChannelAdapter 和 Mqttv5PahoMessageDrivenChannelAdapter 例項。此外,還引入了 MqttMessageNotDeliveredEvent 事件,以便在操作回撥響應交付失敗時發出。有關更多資訊,請參閱 MQTT 支援。
Zip 支援更改
ZipTransformer 現在公開了一個 fileNameGenerator 屬性,用於自定義目標 zip 檔案(和可選 zip 條目)的名稱生成。有關更多資訊,請參閱 Zip 支援。
指令碼更改
Python 指令碼評估現已遷移到 GraalVM Polyglot。有關更多資訊,請參閱 指令碼支援。
郵件更改
AbstractMailReceiver 公開了一個選項,用於停用將 Flags.Flag.FLAGGED 設定為收到的訊息的備用標誌。有關更多資訊,請參閱 郵件支援。