2017-05-24 104 views
0

我使用Spring批处理和Spring启动。我在处理多个文件时遇到问题。在SpringBoot + Spring批处理中读取多个文件和进程

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

Sourcefile1.txt:

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

Sourcefile2.txt:

name, address 
vijay, india 
ajay, uk 

我想处理使用弹簧启动,弹簧批处理这些文件。我怎样才能做到这一点?

回答

0

您需要创建一个弹簧批处理作业。 使用一个读取文件的阅读器,读取csv文件,弹簧批处理实现了FlatFileItemReader的 。虽然在Spring批处理中将此类作为阅读器bean进行注册,但您可以根据需要配置此文件,同时对其属性执行setter注入。例如,可以设置此类的属性linesToSkip,这将排除您执行的操作不想让Spring批处理读取,通常我们跳过文件的第一行,因为它包含标题。进一步你可以配置一个线映射到这个bean为此有另一个实现形式春天批本身有名称DefaultLineMapper,扩展这个类如果你想定制你的文件映射逻辑。 这是关于阅读部分的内容。现在,您可以实现由spring批处理器和编写器提供的处理器和编写器,以便对使用FlatFileReader读取的数据执行进一步的操作。

+0

感谢Vijender的评论。我能够读取一个文件并使用spring批处理。我们面临的问题是一次读取多个具有不同头的文件并进行处理。 –

+0

在这种情况下,我认为你应该为特定的文件做一个特定的工作,因为这些文件有不同的头文件,这意味着这些文件并不完全相同。你为什么要一次处理异构文件?此外,您将在春季批处理时处理这些文件时遇到的问题。 –

+0

我们有很多来源与我们分享他们的数据文件与标题。现在,我们必须读取所有文件并将其处理到数据库中。 –

相关问题