首页 > 解决方案 > 如何将文件本身作为项目处理?

问题描述

我是 Spring Batch 的新手,我有以下要求。我需要处理一个包含 PDF、XML 和 .hsh 文件的 zip 文件。对于每个 XML 和 PDF,我都有一个 .hsh 文件,其中包含它们各自的哈希码。因此,我需要获取哈希码并查看哪个文件具有相同的哈希码,然后将其注册到数据库中。我如何使用面向块的处理模型来实现这个解决方案

标签: javaspringspring-bootoracle11gspring-batch

解决方案


ResourcesItemReader是您正在寻找的。它允许您读取类型的项目,org.springframework.core.io.Resource在您的情况下可能是文件。

您可以做的是创建一个面向块的步骤,如下所示:

  • 项目阅读器:ResourcesItemReader循环您的哈希文件
  • 项目处理器:给定一个哈希文件,确定哪些 pdf/xml 文件对应于当前哈希
  • 项目写入器:写入需要写入数据库的任何内容

一些提示:

  • 您可以定义一个表示一组相关文件(哈希 + pdf + xml)的类作为处理器的输出类型和编写器的输入类型。为胜利而封装!
  • 您可以预加载一个 Hashmap(哈希 -> 文件)并在处理器中使用它来获取给定哈希的相应文件(xml 或 pdf)。

推荐阅读