0
我是Spring批處理新手,只是尋求一些幫助在步驟之間傳遞列表。在我的第一步作者中,我將一個列表添加到ExecutionContext中。Spring批處理檢索下一步驟中的作業上下文中的數據
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
stepContext.put("messageList", messages);
在從第二步我做獲得的數據傳回我的讀者:
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
this.messages= jobContext.get("messageList");
這個工作和我得到的名單,但我遇到的問題是,我想通過這個列表到處理器,但ItemReader循環的read()方法不斷返回列表,因爲我只想返回列表一次。當它這樣做時,處理器也會循環。有沒有一種方法可以在沒有read()方法的情況下將這個列表傳遞給讀者?貝婁是我的消息讀
public class MessageReader implements ItemReader<Object> {
private Object messages;
@Override
public Object read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {
return messages;
}
@BeforeStep
public void retrieveSharedStepDate(StepExecution stepExecution){
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
this.messages= jobContext.get("messageList");
}
所以基本上什麼即時試圖做的是讓我在兩個步驟閱讀器來閱讀是從我的作家在第一步中所產生的名單。