最新動態?
對於已經熟悉 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 支援。
遠端檔案介面卡變更
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
在執行時新增 MqttPahoMessageDrivenChannelAdapter
和 Mqttv5PahoMessageDrivenChannelAdapter
的多個例項。此外,還引入了 MqttMessageNotDeliveredEvent
事件,用於在動作回撥對傳送失敗做出反應時發出。詳情請參閱MQTT 支援。
Zip 支援變更
ZipTransformer
現在公開了一個 fileNameGenerator
屬性,用於自定義目標 zip 檔案(和可選的 zip 條目)名稱的生成。詳情請參閱Zip 支援。
指令碼變更
Python 指令碼評估現在已遷移到 GraalVM Polyglot。詳情請參閱指令碼支援。
郵件變更
AbstractMailReceiver
公開了一個選項,可以停用將 Flags.Flag.FLAGGED
設定到接收到的訊息中作為後備標誌。詳情請參閱郵件支援。