首页 文章

Spring批处理中的验证步骤

提问于
浏览
0

我是第一次使用Spring批处理,我需要一些关于验证步骤的帮助 .

在真正开始我的批处理Job之前,我需要对要处理的文件进行一些验证,如:

  • 使用数据库中的信息检查名称

  • 使用系统和数据库中的信息检查第一行和最后一行(具体而言)

  • 使用第一行中的数据检查总行号

在那之后,我可以真正开始我的批处理工作 .

我想到了多个步骤链接彼此,初始步骤进行验证,如果文件无效,则进程进入错误步骤 .

我该怎么做这个验证?找到的所有读者只给我一行文件,我必须创建自己的读者?您将采取哪种方法来管理此行为?

2 回答

  • 1

    对于第一点使用JobExecutionDecider;如果没有通过测试,则会以错误结束您的工作 . 对于其余的积分,您可以解决编写自己的读者或问题的问题

    • 第一行使用 FlatFileItemReader.setLinesToSkip()FlatFileItemReader.setSkippedLinesCallback()

    • 使用PeekableItemReader以检查您是否在最后一行并在处理器阶段执行不同的验证 .

    这种方法可能需要您为第一行,最后一行和其他行编写不同的域对象 .

  • 0

    您可以使用单步并创建一个监听器,您可以在beforeStep中验证您想要的任何内容,或者您可以有两个步骤,第一步是验证并在StepExecutionListener的afterstep方法中返回适当的返回状态 .

    在短期使用的监听器中进行验证,请参考一个非常好的示例here

    要验证输入文件,可以参考example

相关问题