1

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

4

1 回答 1

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

于 2011-08-19T17:08:37.343 回答