我正在使用带有弹簧启动的弹簧批处理。我在处理多个文件时遇到问题。
我的场景。我有多个具有不同标头的文件,例如:
源文件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 读取的数据执行进一步的操作。