- springboot 2.7.18
- jdk 8
- mysql 8.0.33
- mybatisPlus, thymeleaf, bootstrap5, redis, redisson
github链接:https://github.com/superealboom/demo
公共模块
- FunctionLog 注解:打印方法入参出参日志
- NoRepeatSubmit注解:防重提交,自定义时间
- RedissonConfig:redisson分布式锁
- RedisUitl: 集成RedisTemplate封装redis方法
- 统一返回体 Result 对象
- JsonUtil:使用Jackson对json处理
测试例子模块
- GameAspect:AOP各方法执行顺序测试
- easy-captcha:验证码获取校验测试
http://localhost:8020/example/captcha/index
- mybatis Plus批量新增
- GlobalExceptionHandler:自定义异常,异常全局获取
- Jackson, lambda, lombok, predicate,serializable 使用测试
- 多线程:ExecutorService, CountDownLatch, Future, CompletableFuture, runAsync, supplyAsync使用
- serviceList测试
- 读取txt文件测试
大文件上传模块
http://localhost:8010/largefile/file/index
文件上传地址largeFile/src/main/resources/largeFile
文件夹存放文件largeFile/uploadChunks
文件夹存放分割的块- 分割块大小前端默认
chunkSize 1M
,异步上传,后台组装通过分布式锁合并文件 - 支持分割上传,断点续传,续传根据文件名判断
有期可优化拓展:
- 根据文件大小动态变化
chunkSize
- 文件上传目录可更改 oss
- 根据文件名判断文件可更改置根据文件的md5值等判断
- 增加数据库表记录统计数据,文件位置,块详情
- 页面可以增加块上传进度
- 也可将文件分割放到后台使用多线程来做