6.4 和 6.5 之間的更改
一般更改
之前已廢棄的 org.springframework.util.concurrent.ListenableFuture 用法已移除,取而代之的是 CompletableFuture。
之前已廢棄的基於 SpEL 的控制匯流排元件已移除,取而代之的是圍繞 ControlBusCommandRegistry 的功能。<control-bus use-registry=""> 屬性現在已廢棄,沒有替代品,因為只有 ControlBusCommandRegistry 功能可用。Java DSL controlBusOnRegistry() 運算子已廢棄,取而代之的是已恢復的 controlBus(),它現在完全基於 ControlBusCommandRegistry。有關更多資訊,請參閱控制匯流排。
AbstractCorrelatingMessageHandler 不再因 MessageGroupProcessor 的結果為負載集合而丟擲 IllegalArgumentException。相反,這樣的集合會被包裝成一個單獨的回覆訊息。有關更多資訊,請參閱聚合器。
當嘗試向未執行的應用程式傳送訊息時,AbstractMessageChannel Bean 現在會丟擲特殊的 MessageDispatchingException。
通常,嘗試從 afterPropertiesSet()、@PostConstruct 或 Bean 定義方法生成訊息是設計錯誤。SmartLifecycle.start() 是實現此類邏輯的首選方式,或者透過入站通道介面卡實現更好。
Java DSL gateway() 運算子現在完全支援 async(true) 行為。有關更多資訊,請參閱訊息閘道器。
LockRequestHandlerAdvice
引入了一個新的 LockRequestHandlerAdvice,用於根據請求訊息為訊息處理器呼叫保持鎖。有關更多資訊,請參閱向端點新增行為。
關聯處理程式的 discardIndividuallyOnExpiry 選項
聚合器和重排序器現在可以透過將 discardIndividuallyOnExpiry 設定為 false,將整個過期組作為一條訊息丟棄。有關更多資訊,請參閱ReleaseStrategy。
MessageStore 中的 LockRegistry
AbstractMessageGroupStore 現在可以配置 LockRegistry,以原子方式執行一系列持久化操作。有關更多資訊,請參閱使用 LockRegistry。
Micrometer 觀察更改
SourcePollingChannelAdapter 端點現在為收到的訊息啟動一個 CONSUMER 型別的觀察。MessageReceiverContext 現在區分 handler、message-source 和 message-producer 值,用於 spring.integration.type 低基數標籤。有關更多資訊,請參閱Micrometer 觀察。
可選的 Paho MQTT 依賴項
spring-integration-mqtt 的 org.eclipse.paho:org.eclipse.paho.client.mqttv3 依賴項現在也是可選的,就像 org.eclipse.paho:org.eclipse.paho.mqttv5.client 始終是可選的一樣。有關更多資訊,請參閱MQTT 支援。
Apache Kafka 支援更改
KafkaMessageSource 和 KafkaMessageDrivenChannelAdapter 現在預設生成 MessageHeaders.ID 和 MessageHeaders.TIMESTAMP 標頭,就像 Spring Integration 通道介面卡的其餘部分一樣。透過注入具有預設設定的 MessagingMessageConverter 可以恢復到以前的行為。有關更多資訊,請參閱Apache Kafka 支援。
最近檔案過濾器支援
引入了 AbstractRecentFileListFilter 策略,以僅接受根據提供的 age 不夠舊的檔案。提供了相應的實現:RecentFileListFilter、FtpRecentFileListFilter、SftpRecentFileListFilter 和 SmbRecentFileListFilter。有關更多資訊,請參閱讀取檔案。
FileExistsMode 表示式支援
遠端檔案閘道器 (AbstractRemoteFileOutboundGateway) 現在透過 SpEL 表示式支援在執行時動態解析 FileExistsMode。有關更多資訊,請參閱遠端檔案閘道器。
Hazelcast 模組廢棄
由於 Hazelcast CP 子系統遷移到企業版,HazelcastLockRegistry 和 Hazelcast LeaderInitiator 已廢棄。有關更多資訊,請參閱Hazelcast 支援。
JDBC 支援
如果提供的輸入是 Map,BeanPropertySqlParameterSourceFactory 現在內部使用 MapSqlParameterSource。此外,JdbcMessageHandler 公開了一個 usePayloadAsParameterSource 標誌,以允許僅對訊息負載使用引數源。這就是前面提到的 MapSqlParameterSource 對於具有對映負載的請求訊息非常有用之處。有關更多資訊,請參閱JDBC 支援。
Redis Stream 支援
ReactiveRedisStreamMessageHandler 現在公開了一個 Function<Message<?>, RedisStreamCommands.XAddOptions>,以便透過方便的 RedisStreamCommands.XAddOptions API 提供額外的 XADD 選項。有關更多資訊,請參閱Redis 支援。