Spring 批量添加自定义字段

Spring Batch Add Custom Fields

我以前从未使用过 Spring 批处理,但它似乎是我试图完成的任务的可行选择。我需要每晚处理 10 个机构的大约 15 个 CSV 文件。我将 CSV 存储到 Oracle 数据库中的暂存 tables 中。

CSV 文件可能如下所示。

DEPARTMENT_ID,DEPARTMENT_NAME,DEPARTMENT_CODE
100,Computer Science & Engineering,C5321
101,Math,M333
...

但是,当我处理该行并将其添加到数据库时,我需要填写一个机构 ID,该机构 ID 将根据当时正在处理的文件夹确定。

数据库table喜欢这样

INSTITUTION_ID,DEPARTMENT_ID,DEPARTMENT_NAME,DEPARTMENT_CODE
1100,100,Computer Science & Engineering,C5321

还需要对 CSV 文件中的每一行进行验证。 Spring Batch 也可以处理吗?

我看到了对 CustomItemReader 和 CustomItemWriter 的引用,但不确定这是否是我需要的。我看到的示例看起来很简单,只是将 CSV 完全原封不动地转储到匹配的 table 中。

是的,您报告的所有任务都可以 spring 批处理 -

对于 Reader,您可以使用 - 多资源项 Reader,您的通配符名称与您的 - 文件名相匹配。

要验证文件中的行,您可以使用项目处理器并处理验证。

对于您的情况,您不需要使用自定义项目编写器 - 您可以在 XML 文件中将项目编写器配置为数据库项目编写器。

我建议您使用基于 XML 的方法进行 Spring 批量实施。

XML 将用于配置批处理的所有架构 - 如

job -- step -- chunk -- reader -- processor -- writer

要跟踪错误和异常,您可以在每个阶段实施侦听器。

 -- step Execution Listener 

-- 项目 Reader 听众 -- 项目处理器监听器 -- 项目编写器监听器