Spring Batch添加自定义字段

时间:2015-05-26 12:56:34

标签: spring spring-batch batch-processing

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

CSV文件可能如下所示。

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

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

数据库表就像这样

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

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

我已经看到了对CustomItemReader和CustomItemWriter的引用,但不确定这是否是我需要的。我见过的例子看起来基本只是将CSV完全转换为匹配表。

1 个答案:

答案 0 :(得分:1)

是的,您报告的所有任务都可以通过春季批次完成 -

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

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

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

我建议您使用基于XML的方法进行Spring批处理实现。

XML将用于配置批处理的所有体系结构 - 如

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

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

 -- step Execution Listener 

- 项目阅读器监听器   - 项目处理器侦听器   - Item Writer Listener