我們很高興宣佈今天發佈多個與 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 現成提供。 透過 java 配置配置作業以在 Spring Batch Admin 中使用與您使用 @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 普遍可用之前推出。 我們希望公開和透明地說明專案的方向。
任何關注過去幾年中 UI 空間變化率的人都可以快速辨別出選擇現代前端技術並能夠在可預見的將來保持向後相容性現在是不可能的。 突破性變更的速度現在太快了。 在將此因素納入我們希望提供其相關領域最前沿的工具的願望時,我們已決定刪除 UI 作為專案的正式部分。 話雖如此,我們仍然理解用戶端是 Spring Batch Admin 的一個重要組成部分。 因此,我們的計劃是提供一系列範例專案,這些專案展示了幾種不同的用戶端選項。 這將使我們能夠獨立於核心架構/API 發展用戶端選項,而不會阻止我們向後相容。
我們也將棄用舊版的 REST API。新的 API 在 REST API 成熟度模型中向前邁進了一步,從基於 HTTP 的基本 CRUD 轉為支援真正的資源。雖然新的 REST 端點仍在開發中,但一旦它們的功能完備,我們將棄用舊的端點,以便將開發精力集中在改進和發展新的端點集上。
下一步
我們將繼續致力於上述變更,並計劃於今年第二季度初再次發布新版本。我們對 Spring Batch Admin 的未來感到興奮,並期待您在 Jira、Github、StackOverflow 和社群媒體上提供您的意見!