2.1 和 2.2 之間的更改

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

新元件

2.2 版本增加了一些新元件。

RedisStore 入站和出站通道介面卡

Spring Integration 現在有 RedisStore 入站和出站通道介面卡,讓您可以將 Message 有效負載寫入 Redis 集合並從中讀取。欲瞭解更多資訊,請參閱 RedisStore 出站通道介面卡RedisStore 入站通道介面卡

MongoDB 入站和出站通道介面卡

Spring Integration 現在有 MongoDB 入站和出站通道介面卡,讓您可以將 Message 有效負載寫入 MongoDB 文件儲存並從中讀取。欲瞭解更多資訊,請參閱 MongoDB 出站通道介面卡MongoDB 入站通道介面卡

JPA 端點

Spring Integration 現在包含 Java 持久化 API (JPA) 的元件,用於檢索和持久化 JPA 實體物件。JPA 介面卡包含以下元件

欲瞭解更多資訊,請參閱 JPA 支援

一般更改

本節描述了從 2.1 版本到 2.2 版本的一般更改。

預設使用 Spring 3.1

Spring Integration 現在使用 Spring 3.1。

為端點新增行為

為輪詢器新增 <advice-chain/> 的能力已經存在一段時間了。然而,由此新增的行為會影響整個整合流。它沒有解決為單個端點新增(例如)重試的能力。2.2 版本為許多端點引入了 <request-handler-advice-chain/>

此外,我們為此目的添加了三個標準建議類

  • MessageHandlerRetryAdvice

  • MessageHandlerCircuitBreakerAdvice

  • ExpressionEvaluatingMessageHandlerAdvice

欲瞭解更多資訊,請參閱 為端點新增行為

事務同步和偽事務

輪詢器現在可以參與 Spring 的事務同步功能。這允許同步諸如入站通道介面卡重新命名檔案等操作,具體取決於事務是提交還是回滾。

此外,當沒有“真實”事務存在時,您可以透過 PseudoTransactionManager 啟用這些功能。

欲瞭解更多資訊,請參閱 事務同步

檔案介面卡:改進的檔案覆蓋和追加處理

使用檔案出站通道介面卡或檔案出站閘道器時,可以使用新的 mode 屬性。在 Spring Integration 2.2 之前,如果目標檔案存在,則會被替換。現在您可以指定以下選項

  • REPLACE(預設)

  • APPEND

  • FAIL

  • IGNORE

欲瞭解更多資訊,請參閱 處理現有目標檔案

更多出站閘道器添加了回覆超時

XML 名稱空間支援為以下出站閘道器添加了 reply-timeout 屬性

  • AMQP 出站閘道器

  • 檔案出站閘道器

  • FTP 出站閘道器

  • SFTP 出站閘道器

  • WS 出站閘道器

Spring-AMQP 1.1

Spring Integration 現在使用 Spring AMQP 1.1。這使得 Spring Integration 應用程式中可以使用多種功能,包括以下內容

  • 出站閘道器的固定回覆佇列

  • 高可用 (HA)(映象)佇列

  • 釋出者確認

  • 返回的訊息

  • 支援死信交換和死信佇列

JDBC 支援 - 儲存過程元件

SpEL 支援

使用 Spring Integration JDBC 介面卡的儲存過程元件時,您現在可以使用 Spring 表示式語言 (SpEL) 提供儲存過程名稱或儲存函式名稱。

這樣做可以讓您在執行時指定要呼叫的儲存過程。例如,您可以透過訊息頭提供要執行的儲存過程名稱。欲瞭解更多資訊,請參閱 儲存過程

JMX 支援

儲存過程元件現在提供基本的 JMX 支援,將其某些屬性作為 MBean 公開

  • 儲存過程名稱

  • 儲存過程名稱表示式

  • JdbcCallOperations 快取統計資訊

JDBC 支援:出站閘道器

使用 JDBC 出站閘道器時,更新查詢不再是強制性的。您現在可以僅提供選擇查詢,並使用請求訊息作為引數源。

JDBC 支援:通道特定訊息儲存實現

我們添加了一個新的訊息通道特定訊息儲存實現,使用特定於資料庫的 SQL 查詢提供更具可伸縮性的解決方案。欲瞭解更多資訊,請參閱 支援訊息通道

有序關閉

我們在 IntegrationMBeanExporter 中添加了一個名為 stopActiveComponents() 的方法。它允許 Spring Integration 應用程式以有序的方式關閉,禁止某些介面卡接收新的入站訊息,並等待一段時間以允許正在處理的訊息完成。

JMS 出站閘道器改進

您現在可以將 JMS 出站閘道器配置為使用 MessageListener 容器接收回復。這樣做可以提高閘道器的效能。

ObjectToJsonTransformer

預設情況下,ObjectToJsonTransformer 現在將 content-type 頭設定為 application/json。欲瞭解更多資訊,請參閱 轉換器

HTTP 支援

Java HTTP 序列化不再預設啟用。以前,當在 Serializable 物件上設定 expected-response-type 時,Accept 頭未正確設定。我們更新了 SerializingHttpMessageConverter 以將 Accept 頭設定為 application/x-java-serialized-object。然而,由於這可能導致與現有應用程式不相容,我們決定不再自動將此轉換器新增到 HTTP 端點。

如果您希望使用 Java 序列化,則需要使用 message-converters 屬性(使用 XML 配置時)或使用 setMessageConverters() 方法(在 Java 中)將 SerializingHttpMessageConverter 新增到相應的端點。

或者,您可能希望考慮使用 JSON。透過在類路徑上新增 Jackson 即可啟用它。

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