最新動態?

對於已經熟悉 Spring Integration 的使用者,本章提供了版本 6.4 新特性的簡要概述。

如果您對早期版本中引入的變更和特性感興趣,請參見變更歷史

Spring Integration 6.4 中有什麼新變化?

如果您對更多細節感興趣,請檢視在 6.4 開發過程中解決的 Issue Tracker 票據。

總的來說,專案已遷移到最新的依賴版本。

新元件

已從 MessageBuilder 中提取 BaseMessageBuilder 類,以簡化自定義構建器實現,其中大部分邏輯應與 MessageBuilder 相同。詳情請參閱MessageBuilder

新的控制匯流排互動模型在 ControlBusCommandRegistry 中實現。建議使用新的 ControlBusFactoryBean 類,而不是已棄用的 ExpressionControlBusFactoryBean。詳情請參閱控制匯流排

此外,還引入了 ControlBusController(與 @EnableControlBusController 一起),用於管理由上述 ControlBusCommandRegistry 公開的命令。詳情請參閱HTTP 支援

SpEL 評估基礎設施現在支援 IndexAccessor 的配置。此外,還提供了一個開箱即用的 JsonIndexAccessor。詳情請參閱SpEL 支援

一般變更

Java DSL SourcePollingChannelAdapterSpec 現在可以使用自定義 TaskScheduler 進行配置

遠端檔案介面卡變更

AbstractRemoteFileStreamingMessageSource 現在提供了一個方便的 clearFetchedCache() API,用於從快取中移除未處理的遠端檔案引用。引用保留在快取中是因為輪詢配置不允許在一個週期內處理所有抓取的檔案,並且目標 SessionFactory 可能會在輪詢週期之間發生變化,例如透過 RotatingServerAdvice

JDBC 變更

在 Spring Framework 6.2 中,LobHandler(及相關 API)已被棄用並計劃移除。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 Session Factory

MQTT 支援變更

現在可以透過 IntegrationFlowContext 中相應的 ClientManager 在執行時新增 MqttPahoMessageDrivenChannelAdapterMqttv5PahoMessageDrivenChannelAdapter 的多個例項。此外,還引入了 MqttMessageNotDeliveredEvent 事件,用於在動作回撥對傳送失敗做出反應時發出。詳情請參閱MQTT 支援

Zip 支援變更

ZipTransformer 現在公開了一個 fileNameGenerator 屬性,用於自定義目標 zip 檔案(和可選的 zip 條目)名稱的生成。詳情請參閱Zip 支援

指令碼變更

Python 指令碼評估現在已遷移到 GraalVM Polyglot。詳情請參閱指令碼支援

郵件變更

AbstractMailReceiver 公開了一個選項,可以停用將 Flags.Flag.FLAGGED 設定到接收到的訊息中作為後備標誌。詳情請參閱郵件支援