2013-05-01 55 views
1

我需要訪問itemProcessoritemWriter中的對象,但我不想將其保存在executionContext中。我會在預處理步驟中閱讀這個對象。
這樣做的最佳方法是什麼?Spring批處理 - 需要使用itemProcessor/itemWriter中的對象但不能保留它

到目前爲止,我有什麼是 - 我把對象的jobExecutionContext,然後我把我的itemProcessor爲「步」的範圍和itemProcessor的屬性綁定到"#{stepExecution.jobExecution.executionContext}"。這確實使我能夠訪問我的對象。但我在這個解決方案中遇到了兩個問題:

  1. 何時從上下文中刪除對象,以便它不保持持久性,它必須在完成所有項目後完成。
  2. 我的目標可能是巨大的,它似乎在上下文中的列大小2500

的這是一個很好的解決方案,如果是,我該如何解決上述兩個問題。如果沒有,是否有一種好方法可以在春季批量生產或緩存最佳方法?

謝謝。

+0

只是爲了更新我最終做的事情 - 我創建了一個緩存對象並使用作業執行ID作爲緩存鍵。 – enkay 2013-07-30 23:05:42

回答

-1

執行/作業/步驟... Spring批處理的上下文使用意味着在可重新啓動的特性的spring批處理的元數據中被保留以命名一個!

我以前做過的事情是創建一個普通的spring bean,其中包含對象喲需要,並且只需在處理器和編寫器中自動添加@autowired!

工作完成。

+0

好的,謝謝你的回答。 – enkay 2013-05-06 16:45:48