首页 > 解决方案 > 如何在 Spring Batch Listener 中访问 Job 参数?

问题描述

我正在ItemListenerSupport为 ItemReadListener、ItemProcessListener 和 ItemWriteListener 做一些错误处理。我想在这种情况下访问作业参数。我如何获取那些?我试图@BeforeStep注入 StepExecution 和 Jobexecution 但都没有奏效。

标签: spring-batch

解决方案


要获取作业参数的句柄,您可以在侦听器类中实现 StepExecutionListener 以使用覆盖方法 beforeStep 和 afterStep

@Override
public void beforeStep(StepExecution stepExecution) {
    String name = (String) stepExecution.getJobExecution().getExecutionContext()
            .get("name");

}

@Override
public ExitStatus afterStep(StepExecution stepExecution) {
    if (stepExecution.getStatus() == BatchStatus.COMPLETED) {
        return ExitStatus.COMPLETED;
    }
    return ExitStatus.FAILED;
}

推荐阅读