Java Spring批处理中的验证步骤

Java Spring批处理中的验证步骤,java,spring,validation,spring-batch,batch-processing,Java,Spring,Validation,Spring Batch,Batch Processing,我第一次使用SpringBatch,我需要一些关于验证步骤的帮助 在真正开始批处理作业之前,我需要对文件进行一些验证,如: 使用数据库中的信息检查名称 使用系统和数据库中的信息检查第一行和最后一行(具体) 用第一行中的数据检查总行数 之后,我可以真正开始我的批处理工作 在我看来,多个步骤相互链接,第一步进行验证,如果文件无效,则流程进入错误步骤 如何进行此验证?找到的所有阅读器只给我一行文件,我必须创建自己的阅读器吗? 您将采取哪种方法来管理此行为?您可以使用单步并生成侦听器,您可以在bef

我第一次使用SpringBatch,我需要一些关于验证步骤的帮助

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

  • 使用数据库中的信息检查名称
  • 使用系统和数据库中的信息检查第一行和最后一行(具体)
  • 用第一行中的数据检查总行数
之后,我可以真正开始我的批处理工作

在我看来,多个步骤相互链接,第一步进行验证,如果文件无效,则流程进入错误步骤

如何进行此验证?找到的所有阅读器只给我一行文件,我必须创建自己的阅读器吗?
您将采取哪种方法来管理此行为?

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

简而言之,使用侦听器进行验证,请参考一个非常好的示例

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

了解第一点使用;如果测试未通过,请以错误结束作业。 对于剩下的几点,您可以通过编写自己的读者或

  • 第一行使用
    FlatFileItemReader.setLinesToSkip()
    FlatFileItemReader.setskipedlinescallback()
  • 使用a检查您是否在最后一行,并在处理器阶段执行不同的验证
这种方法可能需要为第一行、最后一行和其他行编写不同的域对象