是否可以使用 Spring Batch 处理从 Web 应用程序上传的 Multipart CSV 文件?

Posted

技术标签:

【中文标题】是否可以使用 Spring Batch 处理从 Web 应用程序上传的 Multipart CSV 文件?【英文标题】:Is it possible to process Multipart CSV File uploaded from web application using Spring Batch? 【发布时间】:2019-04-15 02:50:30 【问题描述】:

我想将包含学生数据的 csv 文件转换为 List 并插入数据库。我浏览了许多来自各种来源的示例,但没有一个为 使用 spring batch 批量处理从 Web UI 上传的 csv 文件 提供答案。所有示例都处理位于资源文件夹(类路径)中的 csv 文件。 请帮我处理使用 Post 方法上传的 csv 文件,如下所示。

@PostMapping("/save")
public ResponseEntity saveStudentDetails(@RequestParam("file") MultipartFile studentCSV) 
   //code to initate batch processing for studentCSV file

提前致谢。

【问题讨论】:

【参考方案1】:

控制器

@RequestMapping(method = RequestMethod.POST, value = "/save")
        public ReturnFormat uploadCSV(@RequestParam("files")  MultipartFile file )
        
            return uploadingService.uploadCSV( file );
        

服务类会像

    public void uploadCSV (MultipartFile multipartFile)
    
        ReturnFormat rf = new ReturnFormat();
        SuccessErrorList selist = new SuccessErrorList();
        try
        
            File file = convertMultiPartToFile( multipartFile );

    

    private File convertMultiPartToFile( MultipartFile file ) throws IOException
    
        File convFile = new File( file.getOriginalFilename() );
        FileOutputStream fos = new FileOutputStream( convFile );
        fos.write( file.getBytes() );
        fos.close();
        return convFile;
    

【讨论】:

感谢您的回复。但我想将学生 csv 转换为学生列表并将其上传到数据库。 我有一个从 CSV 上传问题的代码。你想看看吗?

以上是关于是否可以使用 Spring Batch 处理从 Web 应用程序上传的 Multipart CSV 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Batch -扩展和并行处理

无法打开spring-batch-core

Spring Batch之批处理实践

迁移到 Spring Boot 2 并使用 Spring Batch 4

Spring 学习总结(34)——Spring Batch 批处理框架使用总结

在 Spring Batch Step、Tasklet 或 Chunks 之间做出决定