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 Backend。 這個後端可確保作品組合中的所有專案都遵循相同的說明文件樣式。 為了與其他專案保持一致,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 社群中所有即將舉行的活動。

查看全部