搶佔先機
VMware 提供培訓和認證,助您快速進步。
瞭解更多我很高興地宣佈 Spring Batch 5.0.0-M5
現已可在我們的里程碑倉庫中獲取。此里程碑的主要主題是改進 Spring Batch 中的測試支援。本文將介紹此領域的主要變化以及在此里程碑版本中引入的其他變化。有關完整的變化列表,請參見釋出說明。
在 4.3 版本之前,JobLauncherTestUtils
通常會自動注入被測試的作業,以簡化測試設定。但是,如果在測試上下文中定義了多個作業怎麼辦?或者如果根本沒有定義任何 Job
bean 怎麼辦?因此,儘管這種自動注入在大多數情況下很方便,但在上述情況下卻導致了一些問題。在此版本中,基於社群反饋,我們決定移除 JobLauncherTestUtils
中對任何作業的自動注入。
類似地,JobRepositoryTestUtils
曾經自動注入應用程式上下文中的 DataSource
。再次,如果在測試上下文中沒有定義資料來源或定義了多個數據源怎麼辦?在此版本中,JobRepositoryTestUtils
已更新為針對 JobRepository
介面工作,無需處理倉庫的任何實現細節(例如資料來源)。
如果您在測試上下文中手動定義這些工具 bean 或透過 @SpringBatchTest
匯入它們,則當您的測試上下文中定義了這些型別的多個 bean 時,您需要手動設定被測試的作業或測試資料來源。
在此里程碑版本中,Spring Batch 的整個測試套件已遷移到 JUnit 5。儘管這不直接影響終端使用者,但它有助於 Batch 團隊和社群貢獻者使用下一代 JUnit 編寫更好的測試。
在此里程碑版本中,文件已更新為使用Spring Asciidoctor 後端。此後端確保了產品組合中的所有專案都遵循相同的文件風格。為了與其他專案保持一致,在此版本中,Spring Batch 的參考文件已更新為使用此後端。您可以在此處檢視新版本的參考文件。
此版本包含多項廢棄和 API 更改。
此里程碑版本引入了以下廢棄內容:
org.springframework.batch.test.AssertFile
工具類已被廢棄,推薦使用現代測試庫提供的類似工具。在此版本中,我們在 ItemWriter
介面中引入了一個破壞性更改
public interface ItemWriter<T> {
-- void write(List<? extends T> items) throws Exception;
++ void write(Chunk<? extends T> items) throws Exception;
}
雖然這個更改看似很小,但我們認為它在更好的封裝性和在框架的不同領域和 API 中使用一致的語言方面具有巨大的附加價值。ItemWriteListener
API 也已更改為使用 Chunk
API。
由於 Chunk
API 實現了 java.lang.Iterable
,這個更改不會影響任何迭代專案列表的客戶端程式碼。此外,這個更改不會影響任何使用 lambda 表示式定義 ItemWriter
的示例,因為專案的型別是推斷的。有關更改的 API 的所有詳細資訊,請參見遷移指南。
主要依賴項已升級到以下版本:
我們要感謝所有為此版本做出貢獻的貢獻者!在我們繼續進行 Spring Batch 5 的工作時,我們期待您在Github、Twitter 和StackOverflow 上提供反饋。