4.2 和 4.3 之間的更改

請參閱 遷移指南,瞭解可能影響您應用程式的重要變更。您可以在 Wiki 上找到所有版本(回溯至 2.1)的遷移指南。

新元件

4.3 版本新增了一些元件。

AMQP 異步出站閘道器

請參閱 異步出站閘道器

MessageGroupFactory

我們引入了 MessageGroupFactory 策略,以允許控制 MessageGroupStore 邏輯中的 MessageGroup 例項。我們為 SimpleMessageGroup 添加了 SimpleMessageGroupFactory 實現,其中 GroupType.HASH_SET 是標準 MessageGroupStore 實現的預設工廠。有關更多資訊,請參閱 訊息儲存

PersistentMessageGroup

我們為永續性 MessageGroupStore 例項添加了 PersistentMessageGroup(延遲載入代理)實現,當它們的 lazyLoadMessageGroupstrue(預設值)時,它會為 getMessageGroup() 返回此例項。有關更多資訊,請參閱 訊息儲存

FTP 和 SFTP 流式入站通道介面卡

我們新增了入站通道介面卡,它為每個檔案返回一個 InputStream,允許您在不將遠端檔案寫入本地檔案系統的情況下檢索它們。有關更多資訊,請參閱 FTP 流式入站通道介面卡SFTP 流式入站通道介面卡

StreamTransformer

我們添加了 StreamTransformer,用於將 InputStream 有效負載轉換為 byte[]String。有關更多資訊,請參閱 流轉換器

整合圖

我們新增了 IntegrationGraphServer,以及 IntegrationGraphController REST 服務,用於將 Spring Integration 應用程式的執行時模型公開為圖。有關更多資訊,請參閱 整合圖

JDBC 鎖登錄檔

我們新增了 JdbcLockRegistry,用於透過資料庫表共享分散式鎖。有關更多資訊,請參閱 JDBC 鎖登錄檔

LockRegistryLeaderInitiator

我們添加了基於 LockRegistry 策略的 LeaderInitiator 實現。有關更多資訊,請參閱 領導力事件處理

一般變更

本節描述了 4.3 版本對 Spring Integration 帶來的一般變更。

核心變更

本節描述了 Spring Integration 核心的一般變更。

鏈中的出站閘道器

以前,您可以在鏈中的出站閘道器上指定 reply-channel。它會被完全忽略。閘道器的回覆會發送到下一個鏈元素,或者,如果閘道器是最後一個元素,則傳送到鏈的輸出通道。現在,此情況會被檢測到並禁止。如果您有此配置,請刪除 reply-channel

非同步服務啟用器

我們新增了一個選項,使服務啟用器可以同步。有關更多資訊,請參閱 非同步服務啟用器

訊息註解支援變更

訊息註解支援不再要求在類級別宣告 @MessageEndpoint(或任何其他 @Component)註解。要恢復以前的行為,請將 spring.integration.propertiesspring.integration.messagingAnnotations.require.componentAnnotation 設定為 true。有關更多資訊,請參閱 全域性屬性註解支援

郵件變更

本節描述了 Spring Integration 郵件功能的一般變更。

可定製的使用者標記

現在,可定製的 userFlag(在 4.2.2 中新增,用於自定義表示郵件已讀的標記)在 XML 名稱空間中可用。有關更多資訊,請參閱 當不支援 Recent 時標記 IMAP 訊息

郵件訊息對映

您現在可以使用包含郵件頭的 MessageHeaders 和包含電子郵件內容的有效負載來對映入站郵件訊息。以前,有效負載始終是原始的 MimeMessage。有關更多資訊,請參閱 入站郵件訊息對映

JMS 變更

本節描述了 Spring Integration JMS 功能的一般變更。

頭對映器

DefaultJmsHeaderMapper 現在透過呼叫其 toString() 方法將標準 correlationId 頭對映為訊息屬性。有關更多資訊,請參閱 將訊息頭對映到 JMS 訊息和從 JMS 訊息對映

非同步閘道器

JMS 出站閘道器現在具有 async 屬性。有關更多資訊,請參閱 非同步閘道器

聚合器變更

當 POJO 聚合器釋放 Message<?> 物件的集合時,行為發生了變化。這種情況很少見,但如果您的應用程式這樣做,您需要對 POJO 進行一些小改動。有關更多資訊,請參閱此 重要:SimpleMessageGroup.getMessages() 方法返回一個 unmodifiableCollection 注意。

[[tcp/udp-changes]] === TCP/UDP 變更

本節描述了 Spring Integration TCP/UDP 功能的一般變更。

事件

當伺服器連線工廠啟動時,會發出一個新的 TcpConnectionServerListeningEvent。有關更多資訊,請參閱 TCP 連線事件

您現在可以在 <int-ip:udp-outbound-channel-adapter> 上使用 destination-expressionsocket-expression 屬性。有關更多資訊,請參閱 UDP 介面卡

流反序列化器

各種直到整個訊息組裝完畢才能分配最終緩衝區的反序列化器現在支援將接收資料的原始緩衝區進行池化,而不是為每個訊息建立和丟棄緩衝區。有關更多資訊,請參閱 TCP 連線工廠

TCP 訊息對映器

訊息對映器現在可以選擇設定配置的內容型別頭。有關更多資訊,請參閱 IP 訊息頭

檔案變更

本節描述了 Spring Integration 檔案功能的一般變更。

目標目錄建立

FileWritingMessageHandler 生成的檔名可以表示子路徑,以在目標目錄中儲存檔案的所需目錄結構。有關更多資訊,請參閱 生成檔名

FileReadingMessageSource 現在將 WatchService 目錄掃描邏輯隱藏在內部類中。我們添加了 use-watch-servicewatch-events 選項以啟用此行為。由於 API 周圍的不一致性,我們廢棄了頂層 WatchServiceDirectoryScanner。有關更多資訊,請參閱 WatchServiceDirectoryScanner

緩衝區大小

寫入檔案時,您現在可以指定緩衝區大小。

追加和重新整理

您現在可以避免在追加時重新整理檔案,並使用多種策略在空閒期間重新整理資料。有關更多資訊,請參閱 使用 APPEND_NO_FLUSH 時重新整理檔案

保留時間戳

您現在可以將出站通道介面卡配置為設定目標檔案的 lastmodified 時間戳。有關更多資訊,請參閱 檔案時間戳

拆分器變更

當檔案完全讀取後,FileSplitter 現在會自動關閉 FTP 或 SFTP 會話。這適用於出站閘道器返回 InputStream 或您使用新的 FTP 或 SFTP 流式通道介面卡的情況。我們還引入了一個新的 markers-json 選項,用於將 FileSplitter.FileMarker 轉換為 JSON String,以實現寬鬆的下游網路互動。有關更多資訊,請參閱 檔案拆分器

檔案過濾器

我們添加了 ChainFileListFilter 作為 CompositeFileListFilter 的替代方案。有關更多資訊,請參閱 讀取檔案

AMQP 變更

本節描述了 Spring Integration AMQP 功能的一般變更。

內容型別訊息轉換器

出站端點現在支援配置了 ContentTypeDelegatingMessageConverterRabbitTemplate,這樣您可以根據訊息內容型別選擇轉換器。有關更多資訊,請參閱 出站訊息轉換

延遲訊息處理的頭

Spring AMQP 1.6 增加了對 延遲訊息交換 的支援。頭對映現在支援此功能使用的頭(amqp_delayamqp_receivedDelay)。

AMQP 支援的通道

AMQP 支援的通道現在支援訊息對映。有關更多資訊,請參閱 AMQP 支援的訊息通道

Redis 變更

本節描述了 Spring Integration Redis 功能的一般變更。

[[list-push/pop-direction]] ==== 列表推入/彈出方向

以前,佇列通道介面卡總是以固定方向使用 Redis 列表,從左端推入,從右端讀取。您現在可以使用 RedisQueueMessageDrivenEndpointRedisQueueOutboundChannelAdapterrightPopleftPush 選項分別配置讀取和寫入方向。有關更多資訊,請參閱 Redis 佇列入站通道介面卡Redis 隊列出站通道介面卡

佇列入站閘道器預設序列化器

入站閘道器中的預設序列化器已更改為 JdkSerializationRedisSerializer,以與出站閘道器相容。有關更多資訊,請參閱 Redis 佇列入站閘道器

HTTP 變更

以前,對於沒有 content-type 頭的帶有正文的請求(例如 POST),正文會被忽略。在此版本中,此類請求的內容型別被視為 application/octet-stream,如 RFC 2616 所建議。有關更多資訊,請參閱 HTTP 入站元件

uriVariablesExpression 現在預設使用 SimpleEvaluationContext(自 4.3.15 起)。有關更多資訊,請參閱 對映 URI 變數

SFTP 變更

本節描述了 Spring Integration SFTP 功能的一般變更。

工廠 Bean

我們新增了一個工廠 Bean,以簡化 SFTP 的 Jsch 代理配置。有關更多資訊,請參閱 JschProxyFactoryBean

chmod 變更

SFTP 出站閘道器(用於 putmput 命令)和 SFTP 出站通道介面卡現在支援 chmod 屬性,用於在上傳後更改遠端檔案許可權。有關更多資訊,請參閱 SFTP 出站通道介面卡SFTP 出站閘道器

FTP 變更

本節描述了 Spring Integration FTP 功能的一般變更。

會話變更

FtpSession 現在支援 list()listNames() 方法的 null,因為底層 FTP 客戶端可以使用它。因此,您現在可以配置 FtpOutboundGateway 而無需 remoteDirectory 表示式。您還可以配置 <int-ftp:inbound-channel-adapter> 而無需 remote-directoryremote-directory-expression。有關更多資訊,請參閱 FTP/FTPS 介面卡

路由器變更

ErrorMessageExceptionTypeRouter 現在支援 Exception 超類對映,以避免在有多個繼承者的情況下同一通道的重複。為此,ErrorMessageExceptionTypeRouter 在初始化期間載入對映類,以便在出現 ClassNotFoundException 時快速失敗。

有關更多資訊,請參閱 路由器

頭對映

本節描述了 4.2 和 4.3 版本之間頭對映的變更。

一般

AMQP、WS 和 XMPP 頭對映(例如 request-header-mappingreply-header-mapping)現在支援否定模式。有關更多資訊,請參閱 AMQP 訊息頭WS 訊息頭XMPP 訊息頭

AMQP 頭對映

以前,預設情況下只對映標準 AMQP 頭。您必須顯式啟用使用者定義頭的對映。在此版本中,預設情況下所有頭都對映。此外,入站 amqp_deliveryMode 頭不再預設對映。有關更多資訊,請參閱 AMQP 訊息頭

Groovy 指令碼

您現在可以使用 compile-static 提示或任何其他 CompilerConfiguration 選項配置 groovy 指令碼。有關更多資訊,請參閱 Groovy 配置

@InboundChannelAdapter 變更

@InboundChannelAdapter 現在具有常規 value 的別名 channel 屬性。此外,目標 SourcePollingChannelAdapter 元件現在可以以後期繫結方式從其提供的名稱(outputChannelName 選項)解析目標 outputChannel bean。有關更多資訊,請參閱 註解支援

XMPP 變更

XMPP 通道介面卡現在支援 XMPP 擴充套件 (XEP)。有關更多資訊,請參閱 XMPP 擴充套件

WireTap 後期繫結

WireTap ChannelInterceptor 現在可以接受一個 channelName,該名稱稍後在第一個活動攔截器操作期間解析為目標 MessageChannel。有關更多資訊,請參閱 Wire Tap

ChannelMessageStoreQueryProvider 變更

ChannelMessageStoreQueryProvider 現在支援 H2 資料庫。有關更多資訊,請參閱 支援訊息通道

WebSocket 變更

ServerWebSocketContainer 現在公開一個 allowedOrigins 選項,SockJsServiceOptions 公開一個 suppressCors 選項。有關更多資訊,請參閱 WebSockets 支援

© . This site is unofficial and not affiliated with VMware.