領先一步
VMware 提供培訓和認證,以加速您的進度。
了解更多我很高興代表團隊和所有貢獻者宣布 Spring Batch 5.2 的第一個里程碑版本現在可以從我們的里程碑儲存庫中取得。這篇部落格文章將帶您了解 Spring Batch 5.2 中的主要變更
RecursiveCollectionLineAggregator
中可配置的行分隔符號如需完整的變更列表,請查看發佈說明。
在此版本中,Spring 的相依性已升級到以下版本
在 5.1 版之前,JPA cursor 和 paging item readers 不支援 query hints (例如 fetch size、timeout 等)。使用者需要提供自訂的 query provider 才能指定自訂 hints。
在此版本中,JPA readers 及其各自的 builders 已更新為在定義要使用的 JPA query 時接受 query hints。
此版本在 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
中的行分隔符號屬性已設定為系統的行分隔符號值。雖然可以通過系統屬性更改該值,但這種配置樣式與 batch artifacts 的其他屬性不一致。
此版本在 RecursiveCollectionLineAggregator
中引入了一個新的 setter,允許使用者配置行分隔符號的自訂值,而無需使用系統屬性。
在 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 Issues、Github Discussions、Twitter 和 StackOverflow 上提供您的回饋。