在Spring批处理中在ItemProcessors之间传递数据的最佳方法?

时间:2011-08-19 12:58:31

标签: java spring spring-batch

我需要在项目处理器之间传递与处理项目相关的数据,我不需要保留数据,最好的方法是什么(注意我目前正在使用StepSynchronizationManager访问stepExecution并将数据存储在的ExecutionContext)。

1 个答案:

答案 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> {...}

请参阅Spring Batch Doc - Chaining Item Processors