[英]spring batch read jobParameters from command line and use it in job config
[英]Spring Batch job do not read first line
我有一個 Spring 批處理作業,用於讀取 CSV 文件。
如何避免處理第一行?
我希望處理器不讀取第一行,例如標題。 在這種情況下,我希望 CustomerItemProcessor 不讀取我的 CSV 文件的第一行。
這是我寫的代碼:
@Configuration
public class ImportJobConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Job importUserJob(ItemReader<Customer> importReader) {
return jobBuilderFactory.get("importUserJob")
.incrementer(new RunIdIncrementer())
.flow(step1(importReader))
.end()
.build();
}
@Bean
public Step step1(ItemReader<Customer> importReader) {
return stepBuilderFactory.get("step1")
.<Customer, Customer>chunk(10)
.reader(importReader)
.processor(processor())
.build();
}
@Bean
@Scope(value = "step", proxyMode = ScopedProxyMode.TARGET_CLASS)
public FlatFileItemReader<Customer> importReader1(@Value("#{jobParameters[fullPathFileName]}") String pathToFile) {
FlatFileItemReader<Customer> reader = new FlatFileItemReader<>();
reader.setResource(new FileSystemResource(pathToFile));
reader.setLineMapper(new DefaultLineMapper<Customer>() {{
// doing some stuff
}});
return reader;
}
@Bean
public CustomerItemProcessor processor() {
return new CustomerItemProcessor();
}
}
您可以使用 FlatFileItemReader 的 setLinesToSkip 方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.