如何将文件本身作为项目处理?
How do I process files itself as a Item?
我是 Spring Batch 的新手,我有以下要求。我需要处理一个包含 PDF、XML 和 .hsh 文件的 zip 文件。对于每个 XML 和 PDF,我都有一个 .hsh 文件,其中包含它们各自的哈希码。所以,我需要获取哈希码并查看哪个文件具有相同的哈希码,然后将其注册到数据库中。我如何使用面向块的处理模型来实现此解决方案
ResourcesItemReader 就是您要找的。它允许您读取 org.springframework.core.io.Resource
类型的项目,在您的情况下可能是一个文件。
您可以做的是创建一个面向块的步骤,如下所示:
- 项目 reader:一个
ResourcesItemReader
遍历你的哈希文件
- 项目处理器:给定一个哈希文件,确定哪些pdf/xml个文件对应于当前哈希
- 项目编写器:将需要写入的任何内容写入您的数据库
一些提示:
- 您可以定义代表一组相关文件的 class (hash + pdf + xml) 作为处理器的输出类型和编写器的输入类型。封装为胜!
- 您可以预加载一个 Hashmap(哈希 -> 文件)并在处理器中使用它来为给定的哈希获取相应的文件(xml 或 pdf)。
我是 Spring Batch 的新手,我有以下要求。我需要处理一个包含 PDF、XML 和 .hsh 文件的 zip 文件。对于每个 XML 和 PDF,我都有一个 .hsh 文件,其中包含它们各自的哈希码。所以,我需要获取哈希码并查看哪个文件具有相同的哈希码,然后将其注册到数据库中。我如何使用面向块的处理模型来实现此解决方案
ResourcesItemReader 就是您要找的。它允许您读取 org.springframework.core.io.Resource
类型的项目,在您的情况下可能是一个文件。
您可以做的是创建一个面向块的步骤,如下所示:
- 项目 reader:一个
ResourcesItemReader
遍历你的哈希文件 - 项目处理器:给定一个哈希文件,确定哪些pdf/xml个文件对应于当前哈希
- 项目编写器:将需要写入的任何内容写入您的数据库
一些提示:
- 您可以定义代表一组相关文件的 class (hash + pdf + xml) 作为处理器的输出类型和编写器的输入类型。封装为胜!
- 您可以预加载一个 Hashmap(哈希 -> 文件)并在处理器中使用它来为给定的哈希获取相应的文件(xml 或 pdf)。