2.0 和 2.1 之間的更改

有關可能影響您的應用程式的重要更改,請參閱遷移指南

新元件

2.1 版本添加了許多新元件。

JSR-223 指令碼支援

在 Spring Integration 2.0 中,我們增加了對 Groovy 的支援。在 Spring Integration 2.1 中,透過實現對 JSR-223(“Java™ 平臺指令碼”)的支援,我們大幅擴充套件了對其他語言的支援。現在您可以使用任何支援 JSR-223 的指令碼語言,包括:

  • Javascript

  • Ruby 和 JRuby

  • Python 和 Jython

  • Groovy

有關更多詳細資訊,請參閱 指令碼支援

AMQP 支援

Spring Integration 2.1 添加了幾個通道介面卡,用於透過使用 高階訊息佇列協議 (AMQP) 接收和傳送訊息。此外,Spring Integration 還提供了一個點對點訊息通道和一個釋出-訂閱訊息通道,兩者都由 AMQP 交換機和佇列支援。

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

MongoDB 支援

從 2.1 版本開始,Spring Integration 透過提供基於 MongoDB 的 MessageStore 來支援 MongoDB

有關更多詳細資訊,請參閱 MongoDb 支援

Redis 支援

從 2.1 版本開始,Spring Integration 透過提供基於 Redis 的 MessageStore 以及釋出-訂閱訊息介面卡來支援 Redis,這是一種高階鍵值儲存。

有關更多詳細資訊,請參閱 Redis 支援

支援 Spring 的資源抽象

在 2.1 版本中,我們引入了一個新的資源入站通道介面卡,它基於 Spring 的資源抽象,以支援各種實際底層資源型別(例如檔案、URL 或 classpath 資源)的更大靈活性。因此,它與檔案入站通道介面卡類似,但更通用。

有關更多詳細資訊,請參閱 資源入站通道介面卡

儲存過程元件

Spring Integration 2.1 的 JDBC 模組還透過新增幾個新元件(包括入站和出站通道介面卡以及一個出站閘道器)來提供儲存過程支援。儲存過程支援利用 Spring 的 SimpleJdbcCall 類,因此支援以下資料庫的儲存過程:

  • Apache Derby

  • DB2

  • MySQL

  • Microsoft SQL Server

  • Oracle

  • PostgreSQL

  • Sybase

儲存過程元件還支援以下資料庫的 SQL 函式:

  • MySQL

  • Microsoft SQL Server

  • Oracle

  • PostgreSQL

有關更多詳細資訊,請參閱 儲存過程

XPath 和 XML 驗證過濾器

Spring Integration 2.1 提供了一個新的基於 XPath 的訊息過濾器。它是 XML 模組的一部分。XPath 過濾器允許您使用 XPath 表示式過濾訊息。我們還添加了 XML 驗證過濾器的文件。

有關更多詳細資訊,請參閱 使用 XPath 過濾器XML 驗證過濾器

負載豐富器

從 Spring Integration 2.1 開始,我們添加了負載豐富器。負載豐富器定義了一個端點,該端點通常將 Message 傳遞到公開的請求通道,然後期望收到回覆訊息。回覆訊息隨後成為評估表示式以豐富目標負載的根物件。

有關更多詳細資訊,請參閱 負載豐富器

FTP 和 SFTP 出站閘道器

Spring Integration 2.1 提供了兩個新的出站閘道器,用於與遠端檔案傳輸協議 (FTP) 或安全檔案傳輸協議 (SFTP) 伺服器進行互動。這兩個閘道器允許您直接執行有限的遠端命令集。

例如,您可以使用這些出站閘道器列出、檢索和刪除遠端檔案,並讓 Spring Integration 訊息流繼續處理遠端伺服器的響應。

有關更多詳細資訊,請參閱 FTP 出站閘道器SFTP 出站閘道器

FTP 會話快取

從 2.1 版本開始,我們為遠端檔案介面卡(例如 FTP、SFTP 等)的會話管理提供了更大的靈活性。

具體來說,我們已棄用 cache-sessions 屬性(可透過 XML 名稱空間支援獲得)。作為替代,我們在 CachingSessionFactory 上添加了 sessionCacheSizesessionWaitTimeout 屬性。

有關更多詳細資訊,請參閱 FTP 會話快取SFTP 會話快取

框架重構

我們以多種方式重構了 Spring Integration 框架,所有這些都將在本節中描述。

標準化路由器配置

我們使用 Spring Integration 2.1 標準化了所有路由器實現中的路由器引數,以提供更一致的使用者體驗。

在 Spring Integration 2.1 中,我們刪除了 ignore-channel-name-resolution-failures 屬性,轉而將其行為與 resolution-required 屬性合併。此外,resolution-required 屬性現在預設為 true

從 Spring Integration 2.1 開始,如果未定義預設輸出通道,路由器不再靜默丟棄任何訊息。這意味著,預設情況下,路由器現在至少需要一個已解析的通道(如果未設定 default-output-channel),並且預設情況下,如果未確定通道(或嘗試傳送不成功),則會丟擲 MessageDeliveryException

但是,如果您確實想靜默丟棄訊息,可以將 default-output-channel="nullChannel"

隨著路由器引數的標準化和前面描述的引數的合併,較舊的基於 Spring Integration 的應用程式可能會中斷。

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

XML 模式更新到 2.1

Spring Integration 2.1 附帶了更新的 XML 模式(版本 2.1)。它提供了許多改進,例如前面討論的路由器標準化。

從現在開始,開發人員必須始終宣告最新的 XML 模式(當前版本 2.1)。或者,他們可以使用無版本模式。通常,最佳選擇是使用無版本名稱空間,因為它們會自動使用 Spring Integration 的最新可用版本。

以下示例聲明瞭一個無版本的 Spring Integration 名稱空間:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

以下示例聲明瞭一個具有顯式版本的 Spring Integration 名稱空間:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration-2.2.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

舊的 1.0 和 2.0 模式仍然存在。但是,如果應用程式上下文仍然引用其中一個已棄用的模式,則驗證器會在初始化時失敗。

原始碼管理和構建基礎設施

2.1 版本對原始碼管理和構建基礎設施進行了一些更改。本節將介紹這些更改。

原始碼現已託管在 Github 上

自 2.0 版本以來,Spring Integration 專案使用 Git 進行版本控制。為了進一步提高社群知名度,該專案已從 SpringSource 託管的 Git 儲存庫遷移到 Github。Spring Integration Git 儲存庫位於:spring-integration

對於該專案,我們還改進了提供程式碼貢獻的過程。此外,我們確保每次提交都經過同行評審。事實上,核心提交者現在遵循與貢獻者相同的流程。有關更多詳細資訊,請參閱 貢獻

使用 Sonar 提高原始碼可見性

為了提供更好的原始碼可見性並因此監控 Spring Integration 原始碼的質量,我們設定了一個 Sonar 例項。我們每晚收集指標並在 sonar.spring.io 上提供。

新示例

對於 Spring Integration 的 2.1 版本,我們還擴充套件了 Spring Integration 示例專案並添加了許多新示例,例如涵蓋 AMQP 支援的示例、展示新負載豐富器的示例、說明測試 Spring Integration 流片段技術的示例以及針對 Oracle 資料庫執行儲存過程的示例。有關詳細資訊,請訪問 spring-integration-samples

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