我需要在项目处理器之间传递与处理项目相关的数据,我不需要保留数据,最好的方法是什么(注意我目前正在使用StepSynchronizationManager访问stepExecution并将数据存储在的ExecutionContext)。
答案 0 :(得分:2)
是什么让你觉得,你的方式 - 在StepExecutionContext中存储数据 - 是坏的还是不是最好的方法?
您可以在不保存StepExecution数据的情况下尝试,而是更改处理器之间的项目
public class FirstProcessor implements ItemProcessor<String, String> {...}
public class SecondProcessor implements ItemProcessor<String, OtherClass> {
public OtherClass process(String item) throws Exception {
return otherClassObjectWithDataForNextProcessor;
}
}
public class ThirdProcessor implements ItemProcessor<OtherClass, TargetClass> {...}
public class CustomItemWriter implements ItemWriter<TargetClass> {...}