我有一个要求,比如我需要通过使用 Spring Batch 从数据库中读取数据来创建两个不同的布局平面文件。
@Component
public class CustomReader implements ItemReader<InputFile> {
@Override
public InputFile read() throws Exception, UnexpectedInputException, ParseException,
NonTransientResourceException{
// logic to read data from db
return item;
}
}
处理器
@Component
public class CustomProcessor implements ItemProcessor<InputFile, OutputFile> {
@Override
public OutputFile process(InputFile item) throws Exception {
OutputFile output = new OutputFile();
// some business logic
return output;
}
}
作家
@Component
public class CustomWriter implements ItemWriter<OutputFile>{
@Override
public void write(List<? extends OutputFile> items) throws Exception {
// I have now the output data
}
}
我有OutputFile数据,但现在我想将此数据写入具有不同布局的两个不同平面文件。在第二个文件以及一些数据中,我必须添加两个常量数据,我将从属性文件中获得。
例如:文件1.txt
姓名年龄
例如:文件2.txt
名称,暴民,常数1,常数2
作业配置
@Bean
public Job job() {
return this.jobBuilderFactory.get("Job-Load")
.start(fileReadingStep())
.build();
}
@Bean
public Step fileReadingStep() {
return stepBuilderFactory.get("File-Read-Step1")
.<InputFile, OutputFile>chunk(50)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}