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());
    }
相关推荐
小文大数据1 天前
python实现HTML转PDF
java·前端·数据库
架构师沉默1 天前
为什么 Dubbo 从 ZooKeeper 转向 Nacos?
java·后端·架构
用户8307196840821 天前
Spring Prototype Bean的四种正确使用方式
java·spring boot·后端
永恒_顺其自然1 天前
Java Web 传统项目异步分块上传系统实现方案
java·开发语言·前端
赫瑞1 天前
Java中的大数处理 —— BigInteger
java·开发语言
r_oo_ki_e_1 天前
java25--Collection集合
java·开发语言
色空大师1 天前
网站搭建实操(五)后台管理-短信模块
java·阿里云短信·网站·短信
极创信息1 天前
信创软件安全加固指南,信创软件的纵深防御体系
java·大数据·数据库·金融·php·mvc·软件工程
蜘蛛侠..1 天前
什么是 Plan-and-Execute 模式?与ReAct模式区别?
java·ai·大模型·llm·agent·react·plan模式
untE EADO1 天前
SpringBoot:几种常用的接口日期格式化方法
java·spring boot·后端