我最近开始学习 Spring Batch,以便利用它的一些更高级的功能,如异步批处理、作业停止和调度来替换一些现有的批处理功能,并实现新的批处理功能。现在,我正试图弄清楚如何动态处理多个批处理文件并为每个输入文件生成一个“收据”文件,我对 Spring Batch 架构师的一些设计决策感到困惑。似乎为了处理一个简单的平面 CSV 文件并生成输出,我将不得不手动破解我的 ApplicationContext 中的 bean 并在运行时手动设置它们的“资源”属性,以实现我想要的FlatFileItemReader 和 FlatFileItemWriter。对于据称是多线程、高性能批处理框架的东西来说,这既不安全也不是好的做法。我只是错过了什么吗?
问问题
1602 次
2 回答
0
似乎您可以使用MultiResourceItemReader
指定多个资源并将其设置FlatFileItemReader
为 MultiResourceItemReaders
委托。
于 2010-12-29T07:16:56.177 回答
0
事实证明,我误解了一些文档。Spring Batch 引入了一个新的 bean 范围,“step”,并使用它为批处理流中的每个步骤创建新的 bean,该 bean 基于读取器和写入器的配置中给出的名称。然后它使用 Spring 的 EL 动态配置这些。至于让多批次运行,我只是完成了单个批次定义的配置,然后将多批次处理推送到代码中。
于 2011-09-02T14:56:50.870 回答