# sync-utils **Repository Path**: yufei88/sync-utils ## Basic Information - **Project Name**: sync-utils - **Description**: 一个单体的springBoot服务接口需要集成哪些组件 致力于搭建自己代码复用平台的码农工作者。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-12-22 - **Last Updated**: 2025-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, API ## README # sync-utils项目 ## 介绍 - ###### 单体的springBoot封装第三方服务API - ###### 适用于APP、WEB、公众号,其他平台 - ###### 致力于搭建自己代码复用平台的码农工作者。 ## 软件架构 - ###### SpringBoot - ###### MyBatis-Plus - ###### Redis - ###### MySql ## 框架需求 ##### 一、请求参数校验统一校验 1. 统一返回校验不通过的字段列表 2. 增加校验配置类,可配置快速校验错误返回 3. 支持分组校验,不指定分组为默认按规则全部校验 4. 可自定义开发校验注解,自定义校验器规则 5. 支持请求类嵌套校验 6. 支持编程式校验,校验成功执行逻辑,校验失败执行其他逻辑 7. 支持请求数据为数组的校验,需要对数组进行包装 8. 支持枚举参数检验 ##### 二、业务ID统一规则生成 > 提供单独的模块统一生成各种业务的id,可以通过自定义注解实现 ##### 三、日志链路,日志ID追踪 > 保证每一次请求,都有统一的日志ID,使用MDC确保跨线程,跨服务的一次请求保持统一 ##### 四、异步日志保存 > 通过自定义注解+AOP实现日志记录保存 1. 登录日志 2. 业务操作日志(增加,修改,删除) ##### 五、字典值配置 > 字典值统一配置,加载(由数据库加载到redis缓存),字典值支持对第三方系统进行值映射 1. 系统启动时,刷新redis所有字典缓存(可配置开关控制) 2. 开发单独刷新系统字段值的接口,供外部调用刷新 3. 字典值可进行映射,例如:本系统的用户类型为1,调用微信时,可映射为A ##### 六、Agent三方系统模块化封装 > 第三方系统统一模块化接入,统一异常处理机制,模块分离,例如同时接入了微信,支付宝,或者其他平台的系统,单独封装当前平台的https请求类和响应处理类,统一处理公共参数请求参数和响应参数,统一处理异常,本系统调用时,只需要拿到正确响应报文就可以。 1. 请求公共参数封装 2. 统一响应公共参数封装 ##### 七、接口安全性校验,Token+签名+APPID > 对第三方提供的服务,需要对第三方签发APPID,第三方请求时,请求头需携带AppID,签名(所有参数都参与Md5算法签名),Token可根据当前访问资源是否需要用户权限访问来确定是否携带。 ##### 八、接口幂等性处理,防重复提交 > 防止用户的重复提交,通过自定义注解+拦截器处理 ##### 九、请求安全性校验 1. 防止Xss攻击 2. 跨域处理 3. IP白名单 ##### 十、定时任务配置 > 定时任务动态配置,动态执行 ##### 十一、统一结果返回 ##### 十二、统一异常处理 ##### 十三、请求体和响应体加解密处理 ##### 十四、线程池配置,多线程请求 ## 使用说明 暂无 ## 参与贡献 暂无 ## 后续 > #### 实现功能 > > 1. SpringBoot+MyBatis-Plus基础框架搭建 > 2. 集成MySql+Druid > 3. baseController、baseService、baseEntity基类封装 > 4. 统一返回结果封装 > 5. 统一异常处理 > 6. hibernate-validator参数检验 > 7. HttpClient集成,工具类封装 > 8. 集成异步邮件发送功能 > 9. Redis集成,工具类封装 > 10. 集成SLF4j日志功能,日志分类保存 > 11. 集成分页插件 > 12. 异步日志保存(登录日志和业务日志) > 13. 安全性校验,Token+数据签名+APPID > 14. 接口幂等性处理 > 15. 定时任务动态配置 > 16. 项目启动数据字典初始化到redis > 17. 常用工具类封装【常量类封装、IP地址工具类封装、AES加解密工具类,spring获取been的工具类】 > 18. 集成swagger2,可自动生成api文档 > 19. 集成redis的消息队列 > > #### 后续集成 > > 1. 集成shiro权限控制 > 2. 不同用户数据权限过滤 > 3. fmpeg视频处理技术 > 4. 大文件切片上传、断点续传 > 5. Excel上传与下载 > 6. PDF报表文件下载 > 7. 消息中间件 > 8. 多数据源(mySql+pgSql) > 9. 过滤器防范Xss攻击 > 10. 请求参数校验 > 11. http请求模块公共响应参数,公共请求参数封装 > 12. 服务模块化分离,依赖分离 > > > > #### 使用技术 > > 1. mybatis plus > 2. 集成druid连接池 > 3. 集成swagger2,可自动生成api文档 > 4. 集成jwt(前后端api保护)、oauth2(第三方应用)、spring security权限控制 > 5. 集成redis3.2+ > 6. 集成rabbit/rocket/kafka mq消息队列 > 7. 集成spring boot admin,实时检测项目运行情况 > 8. 使用assembly maven插件进行不同环境打包部署,包含启动、重启命令,配置文件提取到外部config目录 > 9. Fastjson > 10. hibernate-validator > 11. Spring Boot2.1.6+ > 12. Spring Framework5.1.8+ > 13. Mybatis3.5.1+ > 14. reflections 反射工具包 > 15. commons-lang3 > 16. commons-io > 17. commons-codec > 18. commons-collections > 19. hutool-all 常用工具包 > 20. JDK1.8 > 21. Mysql5.7+ > 22. git插件 > 23. Lombok > 24. 热部署插件JRebel > 25. SLF4j 日志 > 26. fmpeg > 27. 分页插件 > 28. 多数据源