如何在 ItemWriter 中获取 JobParameter 和 JobExecutionContext?

2022-09-01 15:17:13

我想在我的类中检索和对象。如何进行?JobParameterJobExecutionContextItemWriter

我尝试实现我只是调用父类方法。但它并没有成功。StepExecutionListener

提前致谢。


答案 1

实现 StepExecutionListener 是一种方法。事实上,这是春季批次1.x中唯一的方法。

从春季批处理 2 开始,您有另一个选择:您可以将作业参数和作业执行上下文中的任何条目注入到项目编写器中。使项目编写器具有范围,然后使用表达式(如 或 用于向项目编写器注入值)。step#{jobParameters['theKeyYouWant']}#{jobExecutionContext['someOtherKey']}


答案 2

使用批注在步骤处理之前调用方法。@BeforeStep

//From the StepExecution get the current running JobExecution object.
public class MyDataProcessor implements ItemProcessor<MyDataRow, MyDataRow> {
    private JobExecution jobExecution;

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

推荐