如果您使用
弹簧批次5
您可以这样更改代码:
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder;
import org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.transaction.PlatformTransactionManager;
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
private static final Logger logger = LoggerFactory.getLogger(BatchConfiguration.class);
@Bean
public ItemReader<CsvModel> reader() {
return new FlatFileItemReaderBuilder<CsvModel>()
.name("csvModelItemReader")
.resource(new ClassPathResource("SwiftMessage.csv"))
.delimited()
.names("block", "tag", "value")
.linesToSkip(1)
.fieldSetMapper(new BeanWrapperFieldSetMapper<>() {{
setTargetType(CsvModel.class);
}})
.build();
}
@Bean
public ItemProcessor<CsvModel, CsvModel> processor() {
return item -> item; // Perform any necessary processing here
}
@Bean
public ItemWriter<CsvModel> writer() {
return items -> {
for (CsvModel item : items) {
// Write item to the destination
logger.info("Writing item: {}", item);
}
};
}
@Bean
public Step step(ItemReader<CsvModel> reader, ItemProcessor<CsvModel, CsvModel> processor,
ItemWriter<CsvModel> writer,JobRepository jobRepository,PlatformTransactionManager transactionManager) {
return new StepBuilder("myStep",jobRepository)
.<CsvModel, CsvModel>chunk(10,transactionManager)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
@Bean
public Job job(Step step,JobRepository jobRepository) {
return new JobBuilder("myJob",jobRepository)
.incrementer(new RunIdIncrementer())
.flow(step)
.end()
.build();
}
}