无法访问writer中的stepExecutionContext值

时间:2014-12-23 13:05:04

标签: spring-batch partitioning

我在分区程序中设置stepExecutionContext值并尝试在Writer中获取它。

但我无法访问它。

作者是步骤范围的。

有没有人可以帮助我如何在编写器中获取步骤执行上下文值?

由于

香卡

1 个答案:

答案 0 :(得分:1)

您可以在writer中实现StepExecutionListener以获取编写器中的stepExecution

public class ExampleWriter implements ItemWriter<T>,StepExecutionListener {
private JobExecution jobExecution;

@Override
public void write(List<? extends T> items) {
String executionContextValue=jobExecution.getExecutionContext().get("KEY");
System.out.println("ExecutionContextValue is:"+executionContextValue);
}

@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    return null;
}

@Override
public void beforeStep(StepExecution stepExecution) {
    this.jobExecution=  stepExecution.getJobExecution();
}

}

如果需要,请在xml配置中将此类注册为侦听器

<listener>ExampleWriter</listener>