2011-05-30 110 views
0

在春季批處理示例中,有很多從csv格式到db表,db表到csv等複製數據的示例。我想知道用戶是否可以選擇某個特定作業的方式,例如從一個csv文件,並且還指定目標格式,例如excel,db,pdf。因此作業的目標格式取決於用戶輸入。Spring文件批量輸出格式?

謝謝! Tarun Sapra

+0

創建所有的輸出工作,並根據用戶輸入的作者,運行相應的作業。 – abalogh 2011-05-31 11:21:09

回答

1

鑑於Spring Batch是一個不處理用戶輸入的批處理框架,我不確定您是否正在使用正確的場景。但是,這裏有幾種不同的選項:

  1. 使用作業參數和決策步驟來指向ItemReader/ItemWriter的正確組合。這樣做的缺點是,您需要爲每個實現定義一個步驟(一個用於處理PDF,一個用於Excel等),但是由於每次執行該選擇只會執行一次,因此對該選項的影響會更小性能。

  2. 更乾淨的方法仍然會使用作業參數,但是它會使用ClassifierCompositeItemWriter委託給相應的作者。這個ItemWriter將爲每個實現類型(PDF,Excel等)配置一個ItemWriter委託,並根據您配置的Classifier接口的實現對它們進行指定。從配置的角度來看,這是一種更簡潔的方法,但它有一個缺點,就是要評估要處理的ItemWriter的每個單獨項目(這是一個缺點,假設整個運行將打算每次運行將所有項目發送到同一個ItemWriter )。

  3. 最後,我認爲你應該能夠在理論上使用Spring的bean工廠概念在作業開始時注入ItemWriter。記錄,這純粹是猜測,我沒有實際嘗試過。

邁克爾牛逼米內拉
Pro Spring Batch

+0

你好邁克爾,請你提供一些ClassifierCompositeItemWriter的實例 – 2011-06-02 05:23:23