Spring Batch 5.0.0-M5 現已釋出!

釋出 | Mahmoud Ben Hassine | 2022 年 8 月 24 日 | ...

我很高興地宣佈 Spring Batch 5.0.0-M5 現已可在我們的里程碑倉庫中獲取。此里程碑的主要主題是改進 Spring Batch 中的測試支援。本文將介紹此領域的主要變化以及在此里程碑版本中引入的其他變化。有關完整的變化列表,請參見釋出說明

測試工具配置更新

在 4.3 版本之前,JobLauncherTestUtils 通常會自動注入被測試的作業,以簡化測試設定。但是,如果在測試上下文中定義了多個作業怎麼辦?或者如果根本沒有定義任何 Job bean 怎麼辦?因此,儘管這種自動注入在大多數情況下很方便,但在上述情況下卻導致了一些問題。在此版本中,基於社群反饋,我們決定移除 JobLauncherTestUtils 中對任何作業的自動注入。

類似地,JobRepositoryTestUtils 曾經自動注入應用程式上下文中的 DataSource。再次,如果在測試上下文中沒有定義資料來源或定義了多個數據源怎麼辦?在此版本中,JobRepositoryTestUtils 已更新為針對 JobRepository 介面工作,無需處理倉庫的任何實現細節(例如資料來源)。

如果您在測試上下文中手動定義這些工具 bean 或透過 @SpringBatchTest 匯入它們,則當您的測試上下文中定義了這些型別的多個 bean 時,您需要手動設定被測試的作業或測試資料來源。

遷移到 JUnit Jupiter

在此里程碑版本中,Spring Batch 的整個測試套件已遷移到 JUnit 5。儘管這不直接影響終端使用者,但它有助於 Batch 團隊和社群貢獻者使用下一代 JUnit 編寫更好的測試。

改進的文件

在此里程碑版本中,文件已更新為使用Spring Asciidoctor 後端。此後端確保了產品組合中的所有專案都遵循相同的文件風格。為了與其他專案保持一致,在此版本中,Spring Batch 的參考文件已更新為使用此後端。您可以在此處檢視新版本的參考文件。

廢棄和 API 更改

此版本包含多項廢棄和 API 更改。

廢棄

此里程碑版本引入了以下廢棄內容:

  • Hibernate(遊標/分頁)專案讀取器和專案寫入器已被廢棄,推薦使用基於 JPA 的對應項。
  • org.springframework.batch.test.AssertFile 工具類已被廢棄,推薦使用現代測試庫提供的類似工具。

API 更改

在此版本中,我們在 ItemWriter 介面中引入了一個破壞性更改

public interface ItemWriter<T> {

-- void write(List<? extends T> items) throws Exception;
++ void write(Chunk<? extends T> items) throws Exception;

}

雖然這個更改看似很小,但我們認為它在更好的封裝性和在框架的不同領域和 API 中使用一致的語言方面具有巨大的附加價值。ItemWriteListener API 也已更改為使用 Chunk API。

由於 Chunk API 實現了 java.lang.Iterable,這個更改不會影響任何迭代專案列表的客戶端程式碼。此外,這個更改不會影響任何使用 lambda 表示式定義 ItemWriter 的示例,因為專案的型別是推斷的。有關更改的 API 的所有詳細資訊,請參見遷移指南

依賴項升級

主要依賴項已升級到以下版本:

  • 升級到 Spring Framework 6.0.0-M5
  • 升級到 Spring Data 2022.0.0-M5
  • 升級到 Spring Integration 6.0.0-M4
  • 升級到 Spring AMQP 3.0.0-M3
  • 升級到 Spring for Apache Kafka 3.0.0-M5
  • 升級到 Micrometer 1.10.0-M4
  • 升級到 Hibernate 6.1.2.Final

反饋

我們要感謝所有為此版本做出貢獻的貢獻者!在我們繼續進行 Spring Batch 5 的工作時,我們期待您在GithubTwitterStackOverflow 上提供反饋。


Spring Batch 主頁|Github 上的原始碼|參考文件

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊保持聯絡

訂閱

搶佔先機

VMware 提供培訓和認證,助您快速進步。

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將到來的活動

檢視 Spring 社群所有即將到來的活動。

檢視全部