[英]Best way to implement multiple business logic in ItemProcessor
我只使用了一個使用面向塊的處理(ItemReader,ItemProcessor,ItemWriter)的步驟,從文件中讀取數據,處理數據(有許多業務邏輯背后的條件)和最后一步是寫入數據進入數據庫。
我發現有點棘手的部分是處理器部分,我無法真正添加條件流,因為我既不使用復合處理器也使用塊處理,因為處理某些流需要滿足條件(在對數據進行多次檢查之后 -有時會導致直接數據返回)。
有沒有更好的方法來實現具有許多條件和檢查的所有這些業務邏輯,或者在特定條件下使用 spring 批處理中的塊處理來調用另一個 ItemProcessor 中的 ItemProcessor 的方法?
謝謝
沒有最好的方法。 這取決於用例。 所以我會盡量提供一些指導。
面向塊的處理 model 設計為具有具有以下合同的單個項目處理器:給定輸入項目,項目處理器可以具有以下結果之一:
null
:在這種情況下,項目將被過濾(即不傳遞給編寫器)現在,如何在項目處理器中實現邏輯取決於您。 例如,您可以:
CompositeItemProcessor
)ItemProcessorAdapter
或FunctionItemProcessor
)有幾個用例可以使用項目處理器實現,如數據轉換、過濾、驗證等。您可以在參考文檔的項目處理部分找到更多詳細信息。
您真正需要明確定義的是整個驗證過程(作為黑匣子)的結果是什么,無論它多么復雜,然后才選擇在您的情況下實現它的最佳模式(注意我怎么說“在你的情況下最好”,因為沒有絕對最好的方法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.