如何在 ItemReadListener 中获取 Step Name 和 Step Execution ID?

How to get Step Name and Step Execution ID in ItemReadListener?

我的 Spring 批处理作业使用 FlatFileItemReader 读取 .csv 文件。为了实现错误处理,我创建了一个自定义 ItemReadListener 并提供了一个覆盖的 onReadError 实现。

在这里,我想访问引发错误的 StepNameStepExecutionId(即在 reader 级别)。我可以在我的自定义侦听器中访问 StepExecution 吗?当我尝试将它注入任何方法或构造函数时,出现 "No beans of type StepExecution found" 错误。

谢谢。

在您的 ItemReadListener 中尝试以下内容。

@Value("#{stepExecution}")
private StepExecution stepExecution;

如果范围是步骤,这应该有效。此外,您的 ItemReadListener 应该是一个 spring bean。