弹簧批处理中是否有将字段放在文件的自定义位置的功能?



我想在一个作业中创建 2 个步骤,第一步必须从数据库中提取数据并将它们放入文件中,此步骤正确完成。

第二步必须获取第一步处理的文件并对其进行处理以输出新文件

我的问题:如何将新字段和数据定位在文件中的特定位置/位置

我是否可以使用 lineAggregator 来处理我的数据以及如何处理?

示例:输出步骤 1:
列 1、列 2、列 3 数据 1,数据 2,数据 3

数据 1,数据 2,数据 3 数据 1,数据 2,数据 3 数据 1,数据 2,数据
3

输出步骤2:和目标
列1,列2,新列,列3 数据1,数据2,新数据,数据3 数据1,数据2,新数据,数据3 数据1,数据2,新数据,数据3 数据1,数据2,新数据数据3




这应该类似于写入任何新文件。 在步骤 2 处理器中,您将计算newData值并填充新的 POJO 对象并将其写入文件

BeanWrapperFieldExtractor<CustomerCredit> fieldExtractor = new BeanWrapperFieldExtractor<>();
fieldExtractor.setNames(new String[] {"data1", "data2","newData","data3"});
fieldExtractor.afterPropertiesSet();
DelimitedLineAggregator<CustomerCredit> lineAggregator = new DelimitedLineAggregator<>();
lineAggregator.setDelimiter(",");
lineAggregator.setFieldExtractor(fieldExtractor);
return new FlatFileItemWriterBuilder<CustomerCredit>()
.name("customerCreditWriter")
.resource(outputResource)
.lineAggregator(lineAggregator)
.build();
}

最新更新