Java Spring批处理将csv文件记录保存到Mongo DB中

Java Spring批处理将csv文件记录保存到Mongo DB中,java,spring,spring-boot,spring-batch,Java,Spring,Spring Boot,Spring Batch,我正在处理SpringBatch,它从一个位置读取csv文件中的记录并保存到MongoDB中。我想读取特定对象类型的记录,但在写入记录时,应该使用不同的对象类型。 就像我正在用obj1读取文件一样,我想将obj1设置为obj2并保存到DB。 下面是我的代码 @Bean public Job readCSVFileJob() { return jobBuilderFactory .get("readCSVFileJob")

我正在处理SpringBatch,它从一个位置读取csv文件中的记录并保存到MongoDB中。我想读取特定对象类型的记录,但在写入记录时,应该使用不同的对象类型。 就像我正在用obj1读取文件一样,我想将obj1设置为obj2并保存到DB。 下面是我的代码

@Bean
    public Job readCSVFileJob() {
        return jobBuilderFactory
                .get("readCSVFileJob")
                .incrementer(new RunIdIncrementer())
                .start(step())
                .build();
    }

    @Bean
    public Step step() {
        return stepBuilderFactory
                .get("step")
                .<FileObj, FileObj>chunk(5)
                .reader(reader(null))
                .faultTolerant().skipPolicy(fileVerificationSkipper())
                .writer(writer())
                .build();
    }

    @Bean
    public SkipPolicy fileVerificationSkipper() {
        return new FileVerificationSkipper();
    }

    @Bean
    @StepScope
    public FlatFileItemReader<FileObj> reader(@Value("#{jobParameters['fullPathFileName']}") String fullPathFileName) {
        FlatFileItemReader<FileObj> itemReader = new FlatFileItemReader<FileObj>();
        itemReader.setLineMapper(lineMapper());
        itemReader.setLinesToSkip(1);
        try {
            itemReader.setResource(new PathResource(fullPathFileName)); // set resource from a FTP location
        } catch (Exception e) {
            e.printStackTrace();
        }
        return itemReader;
    }

    @Bean
    public LineMapper<FileObj> lineMapper() {
       //code for line mapper this works fine
        return lineMapper;
    }

    @Bean
    public MongoItemWriter<OBJ2> writer() {
       // in this I want to write in mongo DB with OBJ2 something like below
    repository.save(obj2);
        return writer;
    }
@Bean
公共作业readCSVFileJob(){
返回jobBuilderFactory
.get(“readCSVFileJob”)
.incrementer(新的RunIdIncrementer())
.start(步骤())
.build();
}
@豆子
公共步骤(){
返回stepBuilderFactory
.get(“步骤”)
.chunk(5)
.读卡器(读卡器(空))
.faultTolerant().skipPolicy(fileVerificationSkipper())
.writer(writer())
.build();
}
@豆子
public SkipPolicy fileVerificationSkipper(){
返回新的FileVerificationSkipper();
}
@豆子
@步进镜
公共FlatFileItemReader读取器(@Value(“#{jobParameters['fullPathFileName']}”)字符串fullPathFileName){
FlatFileItemReader itemReader=新FlatFileItemReader();
setLineMapper(lineMapper());
itemReader.setLinesToSkip(1);
试一试{
setResource(新路径资源(fullPathFileName));//从FTP位置设置资源
}捕获(例外e){
e、 printStackTrace();
}
返回项目阅读器;
}
@豆子
公共线条映射器线条映射器(){
//线条映射器的代码这工作正常
返回线映射器;
}
@豆子
公共蒙哥文作家(){
//在这篇文章中,我想用OBJ2编写mongodb,如下所示
repository.save(obj2);
返回作者;
}
您需要添加一个将
obj1
项转换为
obj2
。数据转换是
ItemProcessor
的典型用例