2012-02-07 40 views
1

我在寫一個批處理應用程序,它從文件逐行讀取內容並處理內容並寫入數據庫。我正在使用FlatFileItemReader從文件中讀取。將一個對象從LineCallbackHandler傳遞給ItemWriter

文件中的第一行是特殊的(標題),它使用linesToSkip跳過並使用LineCallbackHandler()進行處理。 HeaderHandler使用標題信息構建一個緩存。

現在我想利用我的ItemWriter內的這個緩存。我不知道如何將我在HeaderHandler內構建的緩存對象傳遞給我的ItemWriter。有沒有一種乾淨的方式來做到這一點?

回答

2

你至少有2種可能:

  1. 使用StepExecutionContext爲您的數據臨時存儲,看看春天批量文檔: passing data to future steps(只是忽略promotionListener 部分)您headerHandler寫緩存到上下文和 書寫器從上下文中提取緩存
  2. 使用spring bean與自定義DataObjectClass或字符串,地圖等,這將在headerHandler中injected和(自定義)itemWriter都相應地使用它
相關問題