Search in sources :

Example 1 with Person

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();*/
}
Also used : FlatFileItemReader(org.springframework.batch.item.file.FlatFileItemReader) DelimitedLineTokenizer(org.springframework.batch.item.file.transform.DelimitedLineTokenizer) DefaultLineMapper(org.springframework.batch.item.file.mapping.DefaultLineMapper) Person(com.gxitsky.entity.Person) ClassPathResource(org.springframework.core.io.ClassPathResource) BeanWrapperFieldSetMapper(org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper) Bean(org.springframework.context.annotation.Bean)

Example 2 with Person

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;
}
Also used : Person(com.gxitsky.entity.Person)

Aggregations

Person (com.gxitsky.entity.Person)2 FlatFileItemReader (org.springframework.batch.item.file.FlatFileItemReader)1 BeanWrapperFieldSetMapper (org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper)1 DefaultLineMapper (org.springframework.batch.item.file.mapping.DefaultLineMapper)1 DelimitedLineTokenizer (org.springframework.batch.item.file.transform.DelimitedLineTokenizer)1 Bean (org.springframework.context.annotation.Bean)1 ClassPathResource (org.springframework.core.io.ClassPathResource)1