4.0 和 4.1 之間的更改
新元件
4.1 版本增加了一些新元件。
Promise<?> 閘道器
訊息閘道器方法現在支援 Reactor `Promise` 返回型別。請參閱非同步閘道器。
WebSocket 支援
`WebSocket` 模組現已可用。它完全基於 Spring WebSocket 和 Spring Messaging 模組,並提供了 `
分散-聚集企業整合模式
我們實現了分散-聚集企業整合模式。有關更多資訊,請參閱分散-聚集。
路由單模式
我們添加了路由單 EIP 模式實現。有關更多資訊,請參閱路由單。
冪等接收器模式
我們透過在 XML 中新增 `
Boon `JsonObjectMapper`
我們為 JSON 轉換器添加了 Boon `JsonObjectMapper`。有關更多資訊,請參閱轉換器。
Redis 佇列閘道器
我們添加了 `
`PollSkipAdvice`
我們添加了 `PollSkipAdvice`,您可以在 `
一般更改
本節描述了從 4.0 版本到 4.1 版本的一般更改。
AMQP 入站端點、通道
使用訊息監聽器容器(入站端點和通道)的元素現在支援 `missing-queues-fatal` 屬性。有關更多資訊,請參閱AMQP 支援。
AMQP 出站端點
AMQP 出站端點支援一個名為 `lazy-connect` 的新屬性(預設值:`true`)。當 `true` 時,連線到代理不會在第一個訊息到達之前建立(假設沒有入站端點,它們總是在啟動期間嘗試建立連線)。當設定為 `false` 時,在應用程式啟動期間會嘗試建立連線。有關更多資訊,請參閱AMQP 支援。
Http 入站通道介面卡和狀態碼
`
MQTT 介面卡更改
您現在可以配置 MQTT 通道介面卡以連線到多個伺服器 — 例如,支援高可用性(HA)。有關更多資訊,請參閱MQTT 支援。
MQTT 訊息驅動的通道介面卡現在支援為每個訂閱指定 QoS 設定。有關更多資訊,請參閱入站(訊息驅動)通道介面卡。
MQTT 出站通道介面卡現在支援非同步傳送,避免在確認交付之前阻塞。有關更多資訊,請參閱出站通道介面卡。
現在可以在執行時以程式設計方式訂閱和取消訂閱主題。有關更多資訊,請參閱入站(訊息驅動)通道介面卡。
FTP 和 SFTP 介面卡更改
FTP 和 SFTP 出站通道介面卡現在支援追加到遠端檔案,並在遠端檔案已存在時執行特定操作。遠端檔案模板現在也支援此功能,以及 `rmdir()` 和 `exists()`。此外,遠端檔案模板提供對底層客戶端物件的訪問,從而可以訪問低階 API。
有關更多資訊,請參閱FTP/FTPS 介面卡和SFTP 介面卡。
拆分器和迭代器
`Splitter` 元件現在支援將 `Iterator` 作為結果物件來生成輸出訊息。有關更多資訊,請參閱拆分器。
聚合器
`Aggregator` 例項現在支援一個新屬性 `expire-groups-upon-timeout`。有關更多資訊,請參閱聚合器。
內容豐富器改進
我們添加了一個 `null-result-expression` 屬性,如果 `
我們添加了一個 `error-channel` 屬性,如果 `request-channel` 的下游發生 `Exception`,則用於處理錯誤流。這允許您返回一個替代物件用於豐富。有關更多資訊,請參閱內容豐富器。
Header Channel Registry
`
有序關機
我們對有序關機演算法進行了改進。有關更多資訊,請參閱有序關機。
`RecipientListRouter` 的管理
`RecipientListRouter` 現在提供了幾個管理操作,用於在執行時配置接收者。因此,您現在可以從一開始就配置 `
AbstractHeaderMapper:NON_STANDARD_HEADERS 令牌
`AbstractHeaderMapper` 實現現在提供了額外的 `NON_STANDARD_HEADERS` 令牌,用於對映任何使用者定義的標頭,這些標頭預設不進行對映。有關更多資訊,請參閱AMQP 訊息標頭。
AMQP 通道:`template-channel-transacted`
我們為 AMQP `MessageChannel` 例項引入了 `template-channel-transacted` 屬性。有關更多資訊,請參閱AMQP 支援的訊息通道。
系統日誌介面卡
預設的系統日誌訊息轉換器現在有一個選項,可以在保留原始訊息有效載荷的同時仍然設定標頭。有關更多資訊,請參閱系統日誌入站通道介面卡。
聚合器建議鏈
`Aggregator` 和 `Resequencer` 現在支援 `
重排序器更改
當重排序器中的訊息組超時(使用 `group-timeout` 或 `MessageGroupStoreReaper`)時,預設情況下,延遲到達的訊息現在會立即丟棄。請參閱重排序器。
可選的 POJO 方法引數
Spring Integration 現在始終如一地處理 Java 8 的 `Optional` 型別。請參閱配置服務啟用器。
`QueueChannel` 支援的佇列型別
`QueueChannel` 支援的 `Queue type` 已從 `BlockingQueue` 更改為更通用的 `Queue`。此更改允許使用任何外部 `Queue` 實現(例如,Reactor 的 `PersistentQueue`)。請參閱`QueueChannel` 配置。
`ChannelInterceptor` 更改
`ChannelInterceptor` 現在支援額外的 `afterSendCompletion()` 和 `afterReceiveCompletion()` 方法。請參閱通道攔截器。