【发布时间】:2016-06-09 16:16:23
【问题描述】:
我在步骤执行侦听器中进行了文件名验证。如果文件名无效,我想终止/停止进入阅读器的步骤。如何在小批量中实现这一点?
【问题讨论】:
我在步骤执行侦听器中进行了文件名验证。如果文件名无效,我想终止/停止进入阅读器的步骤。如何在小批量中实现这一点?
【问题讨论】:
侦听器是进行数据验证的错误位置。如果您必须验证单个数据项,请使用处理器并引发适当的异常。
如果您想验证更“一般”的方面,如文件名或文件的存在或任何其他不属于单个项目的条件,请在处理步骤之前使用 tasklet 步骤。
【讨论】:
Hansjoerg 的回答是正确的。仍然至于如何实现你想要做的事情,这里有一个例子:
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
return ExitStatus.FAILED;
}
这将返回一个 ExitStatus FAILED,您可以在您的 <next on="" /> 标签上使用它来防止进入阅读器。
【讨论】:
解决您的问题的最佳选择是使用JobExecutionDecider 执行文件名验证并停止作业或转到下一步
【讨论】: