Spring Batch 5.2.0-M1 發佈了!

發佈 | Mahmoud Ben Hassine | 2024 年 9 月 18 日 | ...

我很高興代表團隊和所有貢獻者宣布 Spring Batch 5.2 的第一個里程碑版本現在可以從我們的里程碑儲存庫中取得。這篇部落格文章將帶您了解 Spring Batch 5.2 中的主要變更

  • 相依性升級
  • JPA item readers 中支援 Query hints
  • JDBC item readers 中支援 Data class
  • RecursiveCollectionLineAggregator 中可配置的行分隔符號
  • Job 註冊的改進

如需完整的變更列表,請查看發佈說明

相依性升級

在此版本中,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 readers 中支援 Query hints

在 5.1 版之前,JPA cursor 和 paging item readers 不支援 query hints (例如 fetch size、timeout 等)。使用者需要提供自訂的 query provider 才能指定自訂 hints。

在此版本中,JPA readers 及其各自的 builders 已更新為在定義要使用的 JPA query 時接受 query hints。

JDBC item readers 中支援 Data class

此版本在 JDBC cursor 和 paging item readers 的 builders 中引入了一種新方法,允許使用者在 items 的類型為 data class (Java record 或 Kotlin data class) 時指定 DataClassRowMapper

名為 dataRowMapper(TargetType.class) 的新方法與 beanRowMapper(TargetType.class) 相似,旨在使 regular classes (Java beans) 和 data classes (Java records) 之間的 row mappers 配置保持一致。

RecursiveCollectionLineAggregator 中可配置的行分隔符號

到目前為止,RecursiveCollectionLineAggregator 中的行分隔符號屬性已設定為系統的行分隔符號值。雖然可以通過系統屬性更改該值,但這種配置樣式與 batch artifacts 的其他屬性不一致。

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

Job 註冊的改進

在 5.1 版中,batch infrastructure beans 的預設配置已更新為通過在應用程式上下文中定義 JobRegistryBeanPostProcessor bean 來自動填入 job registry。在 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 社群中所有即將舉辦的活動。

查看全部