项目
mjava 标准化后端接口, 自用脚手架封装, mc 只 java-mcli 系列 代号 mjava
运行
先获取依赖mjava包依赖, 已配置 deploy, 尽量不使用 install, 会产生 jar 文件
QueryDSL: 尽量不使用 package, 会产生 jar 文件
- 先 mjava 的 maven 执行 compiler, 获取 BaseDTO 转 QBaseDTO
- 再当前项目的 maven 执行 compiler, 将 ...DTO 类转为 Q...DTO 查询
启动文件 Boot
- JPA 配置扫描基础路径, 涉及子项目也能注册到, 避免启动报错
- 子项目 Boot 配置 @SpringBootApplication(scanBasePackages = {"com.malk"}), 扫描公共模块
静态资源映射
- 静态资源读取是 target 内容, 无需使用 package, 使用 compiler 即可生成, 且不会生产 jar 文件
- mjava 已配置映射路径, 优先读取子项目对应路径内容, 若不存在则会读取 mjava.jar 路径内容, 未匹配则会 404
环境变量: 包含其它文件
- 若子项目没有指定, mjava 内存在的文件, 则会加载 mjava 环境文件
- 若子项目存在同名文件, 则会全量覆盖, 以子项目为准
功能
快速开发底座, 集成三方平台标准化接口和曹操作逻辑 目前对接的三方平台有: 钉钉, 宜搭, 用友u8\yonsuite, 飞书平台
技术
- 并发和异步实现
@Async
- 函数式编程
Lambda
- 入参校验配置
@Validated
注解
- 统一错误拦截
CatchException
类, 通用返回和报错格式
- 数据库操作
jpa
, QueryDSL
工具
- JSON数据操作
fastjson
阿里巴巴
- 工具集:
commons-lang3
, hutool-all
- 基于
winsw
, 在 windows
服务器部署能力
- 通用网络请求
UtilHttp
, 上传下载, post和get请求
- 标准导入导出, 导入基于
EastExcel
, 做了 Lambda
封装. 导出可用基于 EasyExcel
或 POI
- 三方接口, 统一的Toke过期时间管理, 避免限流和无效token
- 通用日志, 环境变量配置, 实现主子项目解耦. 当前每一个子项目对应一个客户, 主项目 mjava 也可独立部署, 提供平台通用接口服务
配置
通用路径
- 日志路径: /Users/malk/server/_Tool/var/项目名称/log
- 文件路径: Users/malk/server/_Tool/var/项目名称/tmp
超时
- nginx:如pass_proxy 配置超时5分钟
- web:设置超时5分钟
- server:设置超时5分钟
timeOut
- server: 异步线程批量等待超时为10分钟
timeAwait
20220529 malk