use of com.gxitsky.entity.Person in project Spring-Boot-Example by gxing19.
the class BatchConfig method reader.
/**
* @desc: 从文件中读取源数据
* @author: gxing
* @date: 2018/9/17 10:55
* @param: []
* @return: org.springframework.batch.item.file.FlatFileItemReader<com.springboot.springbatch.entity.Person>
*/
@Bean
public FlatFileItemReader<Person> reader() {
// 读取文件
FlatFileItemReader<Person> itemReader = new FlatFileItemReader<>();
// 设置文件路径
itemReader.setResource(new ClassPathResource("person-data.csv"));
// 数据和领域模型类做对应映射
DefaultLineMapper<Person> lineMapper = new DefaultLineMapper<>();
DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
BeanWrapperFieldSetMapper<Person> fieldSetMapper = new BeanWrapperFieldSetMapper<>();
fieldSetMapper.setTargetType(Person.class);
lineTokenizer.setNames(new String[] { "firstName", "lastName" });
lineMapper.setLineTokenizer(lineTokenizer);
lineMapper.setFieldSetMapper(fieldSetMapper);
itemReader.setLineMapper(lineMapper);
/*itemReader.setLineMapper(new DefaultLineMapper<Person>(){{
setLineTokenizer(new DelimitedLineTokenizer(){{
setNames(new String[]{"firstName","lastName"});
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<Person>(){{
setTargetType(Person.class);
}});
}});*/
return itemReader;
/* FlatFileItemReaderBuilder<Person> itemReaderBuilder = new FlatFileItemReaderBuilder<>();
itemReaderBuilder.name("personItemReader");
itemReaderBuilder.resource(new ClassPathResource("person-data.csv"));
itemReaderBuilder.delimited().names(new String[]{"firstName", "lastName"});
itemReaderBuilder.fieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {{
setTargetType(Person.class);
}});
return itemReaderBuilder.build();*/
/* return new FlatFileItemReaderBuilder<Person>()
.name("personItemReader")
.resource(new ClassPathResource("person-data.csv")) //查找文件,并将文件行内容转换为对象
.delimited()
.names(new String[]{"firstName", "lastName"})
.fieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {{
setTargetType(Person.class);
}}).build();*/
}
use of com.gxitsky.entity.Person in project Spring-Boot-Example by gxing19.
the class PersonItemProcessor method process.
/**
* @desc: 不要求输入和输出类型相同。
* 实际上,在读取一个数据源之后,有时应用程序的数据流需要不同的数据类型。
* @author: gxing
* @date: 2018/9/17 10:31
* @param: [person]
* @return: com.springboot.springbatch.entity.Person
*/
@Override
public Person process(Person person) throws Exception {
final String firstName = person.getFirstName().toUpperCase();
final String lastName = person.getLastName().toUpperCase();
final Person transformedPerson = new Person().setFirstName(firstName).setLastName(lastName);
return transformedPerson;
}
Aggregations