项目
mjava 标准化后端接口, 自用脚手架封装, mc 之 java-mcli 系列 代号 mjava
运行
*若是首次拉取项目
- 先执行主项目 java-mcli install, 获取 mjava 包依赖, 且在关联 maven 内生成项目结构: 否则子项目可运行但打包报错
- maven 内可删除其他子项目, 保留 java-mcli 与 mjava 目录即可. 注意 mjava pom 需要配置为基础包, 否则关联子项目打包报错
QueryDSL: 尽量不使用 package, 会生产 jar 文件
- 说明: 项目在 compile 会执行 apt-maven-plugin 插件, 将 @Entity 注解类, 添加 Q 前缀, 存放到 target 下 generated-source 目录
- 使用: 若项目使用了 DSL, 先执行 mjava compile, 获取 BaseDTO 转 QBaseDTO. 再执行当前项目 compile, 获取 Q... 类型安全的实体查询类
- *实体若不直接在 com.malk 下, 可声明继承id, 避免编辑器提示 [不加也不影响编译以及运行]. 若是执行 package, 会先执行 compile
*启动文件 Boot
静态资源映射
- 静态资源读取是 target 内容, 无需使用 package, 使用 compile 即可, 不会生产 jar 文件
- mjava 已配置映射路径, 优先读取子项目对应路径内容, 若不存在则会读取 mjava.jar 路径内容, 未匹配则会 404
*环境变量: [包含其它文件]
- 若子项目没有指定, mjava 内存在的文件, 则会加载 mjava 环境文件
- 若子项目存在同名文件, 则会全量覆盖, 以子项目为准. 仅需配置对应环境即可
代理配置
- 内网穿透详见,
remark.md
- nginx 配置可参考
nginx
文件夹
pom 特别说明
- 目前配置全部子项目均可独立运行, 需要两个注意事项
- 第一: mjava 发布作为基础包提供, 注释 pom 内 executions 再执行 install 到本地 maven. 若开启即可作为独立 jar 运行
- 第二: 若关联 mjava 需要有与之相同的依赖, 否则调试可运行, 打包报错. 为了避免重复添加, 将 mjava 依赖直接添加到主项目 pom 上
- 项目被依赖 mjava 是通过 jar, 修改后执行 install 后关联项目才能获取到更新 [保留 mjava 是为了开发效率, 请勿随意修改]
关于mjs
功能
快速开发底座, 集成三方平台标准化接口和曹操作逻辑 目前对接的三方平台有: 钉钉, 宜搭, 用友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
也可独立部署, 提供平台通用接口服务
13.
配置
通用路径
- 日志路径: /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
next maven 私服
- 暂未配置 deploy
[todo: 本地jar, 需要单独引入, 待优化]
福氏nginx直接监听端口, 实现https
当前子项目都依赖Tomcat, 导致jar过大, 是不是考虑弄一个通用docker
20221029
- 新增jsp
- 新增swagger