EasyExcel通用导入 | 简单封装

        • [0. 前言:](#0. 前言:)
        • [1. 基本思路:](#1. 基本思路:)
        • [2. 调用代码:](#2. 调用代码:)
0. 前言:

之前做了好几个导入,用EasyExcel每次都要定义监听器去处理,就想能不能做个通用的方式,如下

1. 基本思路:

导入无非主要就是参数校验和数据保存

  • 通过hibernate-validator可以做简单的参数校验,通过Consumer函数式接口可以再做校验
  • 数据的保存也是通过Consumer函数式接口由调用端处理,也可以再次做一些批量业务检查、赋值
  • 至于怎么保存,异步异步,由调用端控制,简而言之,只做了简单的封装
2. 调用代码:

组件见项目地址:commons-importing-spring-boot-starter

【主要核心代码】:

【调用代码】:

java 复制代码
   public Response<ImportResultVO> createTaskTest(AdminFollowUpSaveVO saveVO, MultipartFile file) {
        Importer<FollowUpTaskUploadExcelVO> importer = importing.getImporter(FollowUpTaskUploadExcelVO.class);
        try {
            importer.file(file.getInputStream());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        importer.dbConsumer(o -> {
            List<FollowUpTaskUploadExcelVO> list = (List<FollowUpTaskUploadExcelVO>) o;
            this.checkData(list);
            this.saveData(list);
        });
        importer.startImport();
        return Response.success(importer.getImportResultVO());
    }
相关推荐
色空大师10 分钟前
服务打包包名设置
java·elasticsearch·maven·打包
xiaoyustudiowww16 分钟前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
隐退山林20 分钟前
JavaEE:多线程初阶(一)
java·开发语言·jvm
最贪吃的虎26 分钟前
Redis其实并不是线程安全的
java·开发语言·数据库·redis·后端·缓存·lua
一勺菠萝丶28 分钟前
Java 后端想学 Vue,又想写浏览器插件?
java·前端·vue.js
xie_pin_an29 分钟前
C++ 类和对象全解析:从基础语法到高级特性
java·jvm·c++
Tao____31 分钟前
企业级物联网平台
java·网络·物联网·mqtt·网络协议
山峰哥33 分钟前
数据库工程与SQL调优实战:从原理到案例的深度解析
java·数据库·sql·oracle·性能优化·编辑器
kaico201833 分钟前
远程调用组件openfeign
java·spring cloud
SunnyDays101134 分钟前
如何使用 JAVA 将 PDF 转换为 PPT:完整指南
java·开发语言·pdf转ppt