Spring Batch 5.2.0-M1 已釋出!

版本釋出 | Mahmoud Ben Hassine | 2024 年 9 月 18 日 | ...

我謹代表團隊和所有做出貢獻的人,很高興地宣佈 Spring Batch 5.2 的第一個里程碑版本現已在我們的里程碑倉庫中提供。這篇博文將帶您瞭解 Spring Batch 5.2 的主要變更。

  • 依賴升級
  • JPA 專案讀取器中的查詢提示支援
  • JDBC 專案讀取器中的資料類支援
  • RecursiveCollectionLineAggregator 中可配置的行分隔符
  • 作業註冊改進

有關完整的更改列表,請檢視 釋出說明

依賴升級

在此版本中,Spring 依賴項已升級到以下版本:

  • Spring Framework: 6.2.0-RC1
  • Spring Retry: 2.0.9
  • Micrometer: 1.14.0-M3
  • Spring Integration: 6.4.0-M3
  • Spring AMQP: 3.2.0-M3
  • Spring Kafka: 3.3.0-M3
  • Spring Data: 3.4.0-M1
  • Spring Ldap: 3.2.6

JPA Item Reader 的查詢提示支援

在 5.1 版本之前,JPA 遊標和分頁 Item Reader 不支援查詢提示(例如 fetch size、timeout 等)。使用者需要提供自定義查詢提供者才能指定自定義提示。

在此版本中,JPA Reader 及其相應的構建器已更新,在定義要使用的 JPA 查詢時接受查詢提示。

JDBC Item Reader 的資料類支援

此版本在 JDBC 遊標和分頁 Item Reader 的構建器中引入了一個新方法,該方法允許使用者在專案型別是資料類(Java record 或 Kotlin data class)時指定 DataClassRowMapper

名為 dataRowMapper(TargetType.class) 的新方法類似於 beanRowMapper(TargetType.class),旨在使普通類(Java bean)和資料類(Java record)之間的行對映器配置保持一致。

RecursiveCollectionLineAggregator 中可配置的行分隔符

直到現在,RecursiveCollectionLineAggregator 中的行分隔符屬性被設定為系統的行分隔符值。雖然可以透過系統屬性更改此值,但這種配置樣式與其他批處理工件屬性不一致。

此版本在 RecursiveCollectionLineAggregator 中引入了一個新的 setter,允許使用者配置自定義行分隔符值,而無需使用系統屬性。

Job 註冊改進

在 5.1 版本中,批處理基礎結構 bean 的預設配置透過在應用程式上下文中定義 JobRegistryBeanPostProcessor bean 來自動填充 job 登錄檔。在 Spring Framework 最近的一次更新中,BeanPostProcessorChecker 的日誌級別發生了變化,導致典型的 Spring Batch 應用程式中出現了與 JobRegistryBeanPostProcessor 相關的幾個警告。這些警告是由於 JobRegistryBeanPostProcessor bean 依賴於 JobRegistry bean,這並不推薦,並且可能導致 bean 生命週期問題。

在此版本中,透過將填充 JobRegistry 的機制從使用 BeanPostProcessor 更改為使用 SmartInitializingSingleton,解決了這些問題。現在 JobRegistryBeanPostProcessor 已被棄用,取而代之的是新新增的 JobRegistrySmartInitializingSingleton

下一步是什麼?

感謝所有為本版本做出貢獻的人!Spring Batch 5.2.0-M1 隨 Spring Boot 3.4.0-M3 一起釋出。

我們期待您在 Github IssuesGithub DiscussionsTwitterStackOverflow 上提供反饋。

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

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

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

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有