0

我有一个要求,比如我需要通过使用 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();
}
4

0 回答 0