我以前从未使用过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完全转换为匹配表。
答案 0 :(得分:1)
是的,您报告的所有任务都可以通过春季批次完成 -
对于您可以使用的阅读器 - 多资源项阅读器,您的通配符名称与您的文件名相匹配。
要验证文件中的行,您可以使用项目处理器并处理验证。
对于您的情况,您不需要使用自定义项目编写器 - 您可以将项目编写器配置为XML文件中的DB项目编写器。
我建议您使用基于XML的方法进行Spring批处理实现。
XML将用于配置批处理的所有体系结构 - 如
job -- step -- chunk -- reader -- processor -- writer
并跟踪错误和异常,您可以在每个阶段实现侦听器。
-- step Execution Listener
- 项目阅读器监听器 - 项目处理器侦听器 - Item Writer Listener