在 SpringBoot + Spring 批处理中读取多个文件和进程



我正在使用带有弹簧启动的弹簧批处理。我在处理多个文件时遇到问题。

我的场景。我有多个具有不同标头的文件,例如:

源文件1.txt:

name, age, salary
ajay, 22, 2000
vijay, 23, 3000

源文件2.txt:

name, address
vijay, india
ajay, uk

我想使用带有弹簧批处理的弹簧启动来处理这些文件。我该怎么做?

您需要创建一个春季批处理作业。 使用将读取文件的阅读器,对于读取csv文件,有一个 从春季批处理实现 FlatFileItemReader。在 Spring 批处理中将此类重新注册为读取器 Bean 时,您可以根据需要配置此文件,同时对其属性执行 setter 注入。例如,您可以设置此类的属性 linesToSkip,这将排除您不希望 spring 批次读取的行,通常我们跳过文件的第一行,因为它包含标头。此外,您可以为此 Bean 配置一个行映射器,为此,Spring batch 本身具有另一个实现形式,名称为 DefaultLineMapper,如果要自定义文件映射逻辑,请扩展此类。 这都是关于阅读部分的。现在,您可以进一步实现 spring batch 提供的处理器和编写器,以对使用 FlatFileReader 读取的数据执行进一步的操作。

最新更新