java - 如何将文件本身作为项目处理?
问题描述
我是 Spring Batch 的新手,我有以下要求。我需要处理一个包含 PDF、XML 和 .hsh 文件的 zip 文件。对于每个 XML 和 PDF,我都有一个 .hsh 文件,其中包含它们各自的哈希码。因此,我需要获取哈希码并查看哪个文件具有相同的哈希码,然后将其注册到数据库中。我如何使用面向块的处理模型来实现这个解决方案
解决方案
ResourcesItemReader是您正在寻找的。它允许您读取类型的项目,org.springframework.core.io.Resource
在您的情况下可能是文件。
您可以做的是创建一个面向块的步骤,如下所示:
- 项目阅读器:
ResourcesItemReader
循环您的哈希文件 - 项目处理器:给定一个哈希文件,确定哪些 pdf/xml 文件对应于当前哈希
- 项目写入器:写入需要写入数据库的任何内容
一些提示:
- 您可以定义一个表示一组相关文件(哈希 + pdf + xml)的类作为处理器的输出类型和编写器的输入类型。为胜利而封装!
- 您可以预加载一个 Hashmap(哈希 -> 文件)并在处理器中使用它来获取给定哈希的相应文件(xml 或 pdf)。
推荐阅读
- python - col 函数如何知道我们指的是哪个 DataFrame?
- flutter - 如何在颤振中添加自定义日历?
- python - 如何在保持领先空白的同时将 CSV 或 excel 转换为 PDF?
- r - write.csv 中的 fileEncoding="UTF8" 不起作用
- javascript - 如果出现错误,我对 fetch api 有一些疑问
- python - Python酸洗对象和这些对象中的对象容器
- angular - 如何使用 Angular 中的打字稿更改 pupop 警报的颜色
- java - Java字符串替换所有字符?
- android - 膨胀类 huawei.android.widget.ImageView android.app.ActivityThread$H.handleMessage 时出错
- android - android.permission.BIND_TELECOM_CONNECTION_SERVICE 权限被拒绝