我在分区程序中设置stepExecutionContext值并尝试在Writer中获取它。
但我无法访问它。
作者是步骤范围的。
有没有人可以帮助我如何在编写器中获取步骤执行上下文值?
由于
香卡
答案 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>