今天我們很高興地宣佈多個與 Spring Batch 相關的版本釋出。Spring Batch 的錯誤修復版本、Spring Batch Admin 的錯誤修復版本以及新版 Spring Batch Admin 的里程碑版本現均已釋出。
Spring Batch 3.0.3
Spring Batch 3.0.3 是 Spring Batch 的最新維護版本,解決了許多增強功能和次要錯誤。Spring Batch 3.0.3 中的新功能包括
改進了對 JSR-352 定製基礎設施的支援
在此版本之前,覆蓋 Spring Batch 為 JSR-352 配置的作業提供的開箱即用基礎設施的唯一方法是將配置包含在作業的上下文中。這阻止了為真正共享的元件配置全域性覆蓋的能力。透過 3.0.3 版本,您現在可以透過系統屬性指定 Spring 配置檔案的位置,該屬性可以覆蓋現有基礎設施。
分割槽結果的可選輪詢
使用遠端分割槽時,主節點需要一種方式來獲知從屬分割槽已完成其工作。傳統上,這是透過每個從屬節點向主節點回復,然後聚合結果,再通知主節點所有從屬節點都已完成。然而,這需要額外的配置,可能並非必要。由於分割槽作業中的從屬節點在與主節點相同的作業倉庫中維護其狀態,主節點只需輪詢作業倉庫即可檢視從屬節點是否已完成。此版本增加了配置 MessageChannelPartitionHandler
以輪詢作業倉庫而不是等待響應訊息的能力。您可以在 MessageChannelPartitionHandler
的文件中閱讀有關此新功能的更多配置資訊。
這不是完整的更新列表,但突出了主要的新功能。您可以在 Spring Batch 的 Jira 問題跟蹤器中檢視具體的更改內容:https://jira.spring.io/browse/BATCH/
Spring Batch Admin
1.3.1
今天釋出的兩個 Spring Batch Admin 版本中的第一個是 Spring Batch Admin 1.3 系列的第一個維護版本。此版本解決了許多次要錯誤,錯誤列表可以在 Jira 中找到:https://jira.spring.io/browse/BATCHADM/
2.0.0.M1
去年 SpringOne2GX 大會上我收到的最大問題是“Spring Batch Admin 怎麼樣了?” Spring Batch Admin 在去年 7 月(去年 SpringOne2GX 不久前)進行了最後一次更新,但這並不是一個很大的功能升級。釋出該版本是為了更新依賴項並解決一些錯誤。從那以後,我們一直在努力更新許多功能,以使 Spring Batch Admin 與時俱進。今天,我們宣佈了實現該目標的第一個里程碑版本。
JSR-352 支援
Spring Batch Admin,作為 2.0.0.M1 版本的一部分,現在將支援 JSR-352 配置的作業。透過將基於 XML 的配置按照規範要求放入 /META-INF/batch-jobs
目錄中,Spring Batch Admin 將載入該作業,使其可透過 REST 端點和當前 UI 啟動。Spring Batch Admin 提供的所有監控功能(檢視執行情況、啟動/停止/重啟等)都可用。
Java 配置支援
隨著 Spring 社群的重心從基於 XML 的配置轉向基於 Java 的配置,Spring Batch Admin 也在與時俱進。截至此版本,Spring Batch Admin 支援配置要掃描的包,以查詢用 Java 配置的 Spring Batch 作業。與其他任何批處理作業一樣,這些作業也將被載入並可供執行,就像它們的 XML 對應版本一樣。
重要的是要注意,雖然 Spring Batch Admin 現在支援基於 Java 的配置,但您不希望與它一起使用 @EnableBatchProcessing
。這樣做是有原因的。@EnableBatchProcessing
提供了一系列基礎設施,而這些基礎設施 Spring Batch Admin 已經開箱即用地提供了。在 Spring Batch Admin 中使用 Java 配置來配置作業與您使用 @EnableBatchProcessing
(但不使用該註解)的方式完全相同。您仍然可以像往常一樣自動注入 JobBuilderFactory
和 StepBuilderFactory
。
REST 端點更新
作為 Spring XD 團隊在其管理 UI 中所做工作的一部分,他們建立了一套全新的與批處理相關的 REST 端點。此版本將這些端點遷移到 Spring Batch Admin 中供所有人使用。在 /batch
路徑下有一系列端點,它們提供與現有 REST API 類似的功能,但功能更強大。新的 API 遵循 HATEOAS 原則,支援 API 發現和遍歷。雖然對 HATEOAS 的支援仍在進行中,但此版本展示了我們在這方面的方向。
Spring Batch Admin 的未來
與所有 Spring 專案一樣,我們力求在合理範圍內保持向後相容性。因此,Spring Batch Admin 2.0 正在經歷一些重大更改,以允許未來的向後相容性。這些更改包括取消“官方”UI 和棄用舊版 REST API。此版本不包含任何這些更改。這些更改將在 Spring Batch Admin 2.0 正式釋出(GA)之前到來。我們希望在專案方向上保持開放和透明。
任何關注過去幾年 UI 領域變化速度的人都能很快認識到,選擇現代前端技術並能夠在可預見的未來保持向後相容性目前是不可能的。當前重大變更的速度實在太快了。當我們考慮這一點以及我們致力於在相關領域提供前沿工具的願望時,我們決定取消 UI 作為專案的正式組成部分。儘管如此,我們仍然理解客戶端是 Spring Batch Admin 提供的核心功能的重要組成部分。因此,我們的計劃是提供一組示例專案,演示幾種不同的客戶端選項。這將使我們能夠在不影響向後相容性的情況下獨立於核心框架/API 演進客戶端選項。
我們還將棄用舊版 REST API。新 API 在 REST API 成熟度模型上向前邁進了一步,從基於 HTTP 的基本 CRUD 轉向對真正資源的支援。雖然新的 REST 端點仍在開發中,但一旦功能完善,我們將棄用舊的端點,並將開發精力集中在改進和演進新的集合上。
接下來的計劃
我們將繼續進行上述更改,目前計劃在今年第二季度初發布另一個版本。我們對 Spring Batch Admin 的未來感到興奮,並期待您在 Jira、Github、StackOverflow 和社交媒體上的反饋!