4.1 和 4.2 之間的更改

有關可能影響您應用程式的重要更改,請參閱遷移指南。您可以在維基上找到所有版本(從 2.1 開始)的遷移指南。

新元件

4.2 版添加了許多新元件。

主要管理/JMX 重構

我們添加了一個新的 MetricsFactory 策略介面。此更改與 JMX 和管理基礎設施中的其他更改一起,提供了對管理配置和執行時效能的更多控制。

但是,這對於(某些)使用者環境具有一些重要影響。

有關完整詳細資訊,請參閱指標和管理以及JMX 改進

MongoDB 元資料儲存

現在可以使用 MongoDbMetadataStore。有關更多資訊,請參閱MongoDB 元資料儲存

SecuredChannel 註解

我們引入了 @SecuredChannel 註解,取代了已棄用的 ChannelSecurityInterceptorFactoryBean。有關更多資訊,請參閱Spring Integration 中的安全性

SecurityContext 傳播

我們引入了 SecurityContextPropagationChannelInterceptor 用於將 SecurityContext 從一個訊息流的執行緒傳播到另一個執行緒。有關更多資訊,請參閱Spring Integration 中的安全性

FileSplitter

在 4.1.2 中,我們添加了 FileSplitter,它將文字檔案拆分為行。它現在在 int-file: 名稱空間中具有完全支援。有關更多資訊,請參閱檔案拆分器

Zookeeper 支援

我們為框架添加了 Zookeeper 支援,以幫助在叢集或多主機環境中執行。此更改會影響以下功能

  • ZookeeperMetadataStore

  • ZookeeperLockRegistry

  • Zookeeper Leader 選舉

有關更多資訊,請參閱Zookeeper 支援

執行緒屏障

一個新的執行緒 <int:barrier/> 元件可用,允許執行緒暫停,直到發生某個非同步事件。有關更多資訊,請參閱執行緒屏障

STOMP 支援

我們為框架添加了 STOMP 支援,作為入站和出站通道介面卡對。有關更多資訊,請參閱STOMP 支援

編解碼器

引入了一個新的 Codec 抽象,用於將物件編碼和解碼為 byte[]。我們添加了一個使用 Kryo 的實現。我們還添加了基於編解碼器的轉換器和訊息轉換器。有關更多資訊,請參閱編解碼器

訊息 PreparedStatement Setter

一個新的 MessagePreparedStatementSetter 函式式介面回撥可用於 JdbcMessageHandler (<int-jdbc:outbound-gateway><int-jdbc:outbound-channel-adapter>),作為使用 SqlParameterSourceFactory 填充 PreparedStatement 引數並帶上 requestMessage 上下文的替代方案。有關更多資訊,請參閱出站通道介面卡

一般更改

本節描述了從 4.1 版到 4.2 版的一般更改。

WireTap

作為現有 selector 屬性的替代方案,<wire-tap/> 元素現在支援 selector-expression 屬性。

檔案更改

有關這些更改的更多資訊,請參閱檔案支援

附加新行

<int-file:outbound-channel-adapter><int-file:outbound-gateway> 現在支援 append-new-line 屬性。如果設定為 true,則在寫入訊息後向檔案附加新行。預設屬性值為 false

忽略隱藏檔案

我們為 <int-file:inbound-channel-adapter> 添加了 ignore-hidden 屬性,讓您可以設定是否從源目錄中拾取隱藏檔案。它預設為 true

寫入 InputStream 有效負載

FileWritingMessageHandler 現在也接受 InputStream 作為有效的訊息有效負載型別。

HeadDirectoryScanner

您現在可以將 HeadDirectoryScanner 與其他 FileListFilter 實現一起使用。

最後修改過濾器

我們添加了 LastModifiedFileListFilter

Watch Service 目錄掃描器

我們添加了 WatchServiceDirectoryScanner

持久檔案列表過濾器更改

AbstractPersistentFileListFilter 有一個新屬性 (flushOnUpdate),當設定為 true 時,如果元資料儲存實現了 Flushable(例如,PropertiesPersistingMetadataStore),則會呼叫 flush()

類包更改

我們將 ScatterGatherHandler 類從 org.springframework.integration.handler 移動到 org.springframework.integration.scattergather

TCP 更改

本節描述了 Spring Integration TCP 功能的一般更改。

TCP 序列化器

TCP Serializers 不再 flush() OutputStream。現在由 TcpNxxConnection 類完成。如果您在程式碼中直接使用序列化器,則可能必須 flush() OutputStream

伺服器套接字異常

每當 TCP 伺服器套接字上發生意外異常時,都會發布 TcpConnectionServerExceptionEvent 例項(也新增到 4.1.3 和 4.0.7)。有關更多資訊,請參閱TCP 連線事件

TCP 伺服器埠

如果您配置 TCP 伺服器套接字工廠以偵聽隨機埠,您現在可以使用 getPort() 獲取作業系統選擇的實際埠。getServerSocketAddress() 也可用。

有關更多資訊,請參閱“TCP 連線工廠”。

TCP 閘道器遠端超時

TcpOutboundGateway 現在支援 remote-timeout-expression 作為現有 remote-timeout 屬性的替代方案。這允許根據每個訊息設定超時。

此外,remote-timeout 不再預設為與 reply-timeout 相同的值,後者具有完全不同的含義。

有關更多資訊,請參閱.TCP 出站閘道器屬性

TCP SSLSession 可用於頭部對映

TcpConnection 實現現在支援 getSslSession(),讓您可以從會話中提取資訊以新增到訊息頭部。有關更多資訊,請參閱IP 訊息頭部

TCP 事件

每當發生關聯異常時(例如向不存在的套接字傳送訊息),都會發布新事件。

TcpConnectionEventListeningMessageProducer 已棄用。請改用通用事件介面卡。

有關更多資訊,請參閱TCP 連線事件

@InboundChannelAdapter 更改

以前,入站通道介面卡上的 @PollermaxMessagesPerPoll 屬性預設為 -1(無限)。這與 <inbound-channel-adapter/> 的 XML 配置不一致,後者預設為 1。該註解現在將此屬性預設為 1

API 更改

o.s.integration.util.FunctionIterator 現在需要一個 o.s.integration.util.Function 而不是 reactor.function.Function。這是為了消除對 Reactor 的不必要的硬依賴。任何使用此迭代器的都需要更改匯入。

Reactor 仍然支援 Promise 閘道器等功能。對於不需要它的使用者,已刪除依賴項。

JMS 更改

本節描述了 Spring Integration TCP 功能的一般更改。

回覆偵聽器延遲初始化

您現在可以在 JMS 出站閘道器中配置回覆偵聽器以按需初始化,並在空閒期後停止,而不是由閘道器的生命週期控制。有關更多資訊,請參閱出站閘道器

訊息驅動端點中的轉換錯誤

現在 error-channel 用於轉換錯誤。在以前的版本中,它們會導致事務回滾和訊息重新投遞。

有關更多資訊,請參閱訊息驅動通道介面卡入站閘道器

預設確認模式

當使用隱式定義的 DefaultMessageListenerContainer 時,預設的 acknowledge 現在是 transacted。建議在使用此容器時使用 transacted,以避免訊息丟失。此預設值現在適用於訊息驅動的入站介面卡和入站閘道器。它已經是 JMS 支援的通道的預設值。

有關更多資訊,請參閱訊息驅動通道介面卡入站閘道器

共享訂閱

我們為訊息驅動端點和 <int-jms:publish-subscribe-channel> 添加了對共享訂閱 (JMS 2.0) 的名稱空間支援。以前,您必須將偵聽器容器作為 <bean/> 宣告進行連線以使用共享連線。

有關更多資訊,請參閱JMS 支援

條件輪詢器

我們現在為動態輪詢提供了更大的靈活性。

有關更多資訊,請參閱訊息源的條件輪詢器

AMQP 更改

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

釋出者確認

<int-amqp:outbound-gateway> 現在支援 confirm-correlation-expressionconfirm-ack-channelconfirm-nack-channel 屬性(其目的與 <int-amqp:outbound-channel-adapter> 類似)。

關聯資料

對於出站通道介面卡和入站閘道器,如果關聯資料是 Message<?>,它將成為 ack 或 nack 通道上訊息的基礎,並添加了額外的頭部。以前,任何關聯資料(包括 Message<?>)都作為 ack 或 nack 訊息的有效負載返回。

入站閘道器屬性

<int-amqp:inbound-gateway> 現在公開了 amqp-template 屬性,以允許對回覆 RabbitTemplate 的外部 bean 進行更多控制。您還可以提供自己的 AmqpTemplate 實現。此外,如果請求訊息沒有 replyTo 屬性,您可以使用 default-reply-to

有關更多資訊,請參閱AMQP 支援

XPath 拆分器改進

XPathMessageSplitter (<int-xml:xpath-splitter>) 現在允許為內部 javax.xml.transform.Transformer 配置 output-properties,並支援 XPath 評估 org.w3c.dom.NodeList 結果的 Iterator 模式(預設為 true)。

有關更多資訊,請參閱拆分 XML 訊息

HTTP 更改

本節描述了 Spring Integration HTTP 功能的一般更改。

CORS

HTTP 入站端點 (<int-http:inbound-channel-adapter><int-http:inbound-gateway>) 現在允許配置跨域資源共享 (CORS)。

有關更多資訊,請參閱跨域資源共享 (CORS) 支援

入站閘道器超時

您可以配置 HTTP 入站閘道器在請求超時時返回您指定的狀態碼。現在預設為 500 Internal Server Error 而不是 200 OK

有關更多資訊,請參閱響應狀態碼

表單資料

我們添加了代理 multipart/form-data 請求的文件。有關更多資訊,請參閱HTTP 支援

閘道器更改

本節描述了 Spring Integration 閘道器功能的一般更改。

[[gateway-methods-can-return-completablefuture<?>]] ==== 閘道器方法可以返回 CompletableFuture<?>

使用 Java 8 時,閘道器方法現在可以返回 CompletableFuture<?>。有關更多資訊,請參閱CompletableFuture

MessagingGateway 註解

請求和回覆超時屬性現在是 String 而不是 Long,以允許使用屬性佔位符或 SpEL 進行配置。請參閱@MessagingGateway 註解

聚合器更改

本節描述了 Spring Integration 聚合器功能的一般更改。

聚合器效能

此版本包括聚合元件(聚合器、重新排序器等)的一些效能改進,透過在釋放訊息時更有效地從組中刪除訊息。已將新方法 (removeMessagesFromGroup) 新增到訊息儲存。設定 removeBatchSize 屬性(預設值:100)以調整每次操作中刪除的訊息數量。目前,JDBC、Redis 和 MongoDB 訊息儲存支援此屬性。

輸出訊息組處理器

當為聚合器使用 ref 或內部 bean 時,您現在可以直接繫結 MessageGroupProcessor。此外,我們添加了一個 SimpleMessageGroupProcessor,它返回組中的訊息集合。當輸出處理器生成 Message<?> 集合時,聚合器會單獨釋放這些訊息。配置 SimpleMessageGroupProcessor 使聚合器成為訊息屏障,其中訊息被 удержи直到它們全部到達,然後單獨釋放。有關更多資訊,請參閱聚合器

FTP 和 SFTP 更改

本節描述了 Spring Integration FTP 和 SFTP 功能的一般更改。

入站通道介面卡

您現在可以在入站通道介面卡上指定 remote-directory-expression,以在執行時確定目錄。有關更多資訊,請參閱FTP/FTPS 介面卡SFTP 介面卡

閘道器部分結果

當您使用 FTP 或 SFTP 出站閘道器操作多個檔案(使用 mgetmput)時,可能會在請求部分完成後發生異常。如果發生此類情況,則會丟擲包含部分結果的 PartialSuccessException。有關更多資訊,請參閱FTP 出站閘道器SFTP 出站閘道器

委派會話工廠

我們添加了一個委派會話工廠,可以根據某些執行緒上下文值選擇特定的會話工廠。

有關更多資訊,請參閱委派會話工廠委派會話工廠

預設 Sftp 會話工廠

以前,DefaultSftpSessionFactory 無條件地允許連線到未知主機。現在這可以配置(預設值:false)。

除非 allowUnknownKeys 屬性為 true(預設值:false),否則工廠現在需要配置的 knownHosts 檔案。

訊息會話回撥

我們引入了 MessageSessionCallback<F, T>,用於在 <int-(s)ftp:outbound-gateway/> 中使用 requestMessage 上下文執行任何自定義 Session 操作。

有關更多資訊,請參閱使用 MessageSessionCallbackMessageSessionCallback

Websocket 更改

我們向 ServerWebSocketContainer 添加了 WebSocketHandlerDecoratorFactory 支援,以允許對內部 WebSocketHandler 進行鏈式定製。有關更多資訊,請參閱WebSockets 名稱空間支援

應用程式事件介面卡更改

ApplicationEvent 介面卡現在可以使用 payload 作為 event,以直接允許省略自定義 ApplicationEvent 擴充套件。為此,我們在 <int-event:outbound-channel-adapter> 上引入了 publish-payload 布林屬性。有關更多資訊,請參閱Spring ApplicationEvent 支援

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