2017-05-24 103 views
0

我使用Spring批處理和Spring啓動。我在處理多個文件時遇到問題。在SpringBoot + Spring批處理中讀取多個文件和進程

我的情景。我有不同頭,例如多個文件:

Sourcefile1.txt:

name, age, salary 
ajay, 22, 2000 
vijay, 23, 3000 

Sourcefile2.txt:

name, address 
vijay, india 
ajay, uk 

我想處理使用彈簧啓動,彈簧批處理這些文件。我怎樣才能做到這一點?

回答

0

您需要創建一個彈簧批處理作業。 使用一個讀取文件的閱讀器,讀取csv文件,彈簧批處理實現了FlatFileItemReader的 。雖然在Spring批處理中將此類作爲閱讀器bean進行註冊,但您可以根據需要配置此文件,同時對其屬性執行setter注入。例如,可以設置此類的屬性linesToSkip,這將排除您執行的操作不想讓Spring批處理讀取,通常我們跳過文件的第一行,因爲它包含標題。進一步你可以配置一個線映射到這個bean爲此有另一個實現形式春天批本身有名稱DefaultLineMapper,擴展這個類如果你想定製你的文件映射邏輯。 這是關於閱讀部分的內容。現在,您可以實現由spring批處理器和編寫器提供的處理器和編寫器,以便對使用FlatFileReader讀取的數據執行進一步的操作。

+0

感謝Vijender的評論。我能夠讀取一個文件並使用spring批處理。我們面臨的問題是一次讀取多個具有不同頭的文件並進行處理。 –

+0

在這種情況下,我認爲你應該爲特定的文件做一個特定的工作,因爲這些文件有不同的頭文件,這意味着這些文件並不完全相同。你爲什麼要一次處理異構文件?此外,您將在春季批處理時處理這些文件時遇到的問題。 –

+0

我們有很多來源與我們分享他們的數據文件與標題。現在,我們必須讀取所有文件並將其處理到數據庫中。 –

相關問題