pruple_boy 6192f8b160 帕科\谷元更新 3 jaren geleden
..
frp fd2a04eddf mjava 版本管理 3 jaren geleden
nginx fd2a04eddf mjava 版本管理 3 jaren geleden
driver.yml 6192f8b160 帕科\谷元更新 3 jaren geleden
readme.md fd2a04eddf mjava 版本管理 3 jaren geleden
search.sh fd2a04eddf mjava 版本管理 3 jaren geleden
server.sh 7d6eb00f41 卓高更新 3 jaren geleden
winsw.xml fd2a04eddf mjava 版本管理 3 jaren geleden

readme.md

项目

mjava 标准化后端接口, 自用脚手架封装, mc 之 java-mcli 系列 代号 mjava

运行

  1. *若是首次拉取项目

    • 先执行主项目 java-mcli install, 获取 mjava 包依赖, 且在关联 maven 内生成项目结构: 否则子项目可运行但打包报错
    • maven 内可删除其他子项目, 保留 java-mcli 与 mjava 目录即可. 注意 mjava pom 需要配置为基础包, 否则关联子项目打包报错
  2. QueryDSL: 尽量不使用 package, 会生产 jar 文件

    • 说明: 项目在 compile 会执行 apt-maven-plugin 插件, 将 @Entity 注解类, 添加 Q 前缀, 存放到 target 下 generated-source 目录
    • 使用: 若项目使用了 DSL, 先执行 mjava compile, 获取 BaseDTO 转 QBaseDTO. 再执行当前项目 compile, 获取 Q... 类型安全的实体查询类
    • *实体若不直接在 com.malk 下, 可声明继承id, 避免编辑器提示 [不加也不影响编译以及运行]. 若是执行 package, 会先执行 compile
  3. *启动文件 Boot

    • JPA 已配置扫描基础路径, 涉及子项目也能注册到, 避免启动报错
    • 子项目 Boot 配置 @SpringBootApplication(scanBasePackages = {"com.malk"}), 扫描公共模块
  4. 静态资源映射

    • 静态资源读取是 target 内容, 无需使用 package, 使用 compile 即可, 不会生产 jar 文件
    • mjava 已配置映射路径, 优先读取子项目对应路径内容, 若不存在则会读取 mjava.jar 路径内容, 未匹配则会 404
  5. *环境变量: [包含其它文件]

    • 若子项目没有指定, mjava 内存在的文件, 则会加载 mjava 环境文件
    • 若子项目存在同名文件, 则会全量覆盖, 以子项目为准. 仅需配置对应环境即可
  6. 代理配置

    • 内网穿透详见, remark.md
    • nginx 配置可参考 nginx 文件夹
  7. pom 特别说明

    • 目前配置全部子项目均可独立运行, 需要两个注意事项
    • 第一: mjava 发布作为基础包提供, 注释 pom 内 executions 再执行 install 到本地 maven. 若开启即可作为独立 jar 运行
    • 第二: 若关联 mjava 需要有与之相同的依赖, 否则调试可运行, 打包报错. 为了避免重复添加, 将 mjava 依赖直接添加到主项目 pom 上
    • 项目被依赖 mjava 是通过 jar, 修改后执行 install 后关联项目才能获取到更新 [保留 mjava 是为了开发效率, 请勿随意修改]
  8. 关于mjs

功能

快速开发底座, 集成三方平台标准化接口和曹操作逻辑 目前对接的三方平台有: 钉钉, 宜搭, 用友u8\yonsuite, 飞书平台

技术

  1. 并发和异步实现 @Async
  2. 函数式编程 Lambda
  3. 入参校验配置 @Validated 注解
  4. 统一错误拦截 CatchException 类, 通用返回和报错格式
  5. 数据库操作 jpa, QueryDSL 工具
  6. JSON数据操作 fastjson 阿里巴巴
  7. 工具集: commons-lang3, hutool-all
  8. 基于 winsw, 在 windows 服务器部署能力
  9. 通用网络请求 UtilHttp, 上传下载, post和get请求
  10. 标准导入导出, 导入基于 EastExcel, 做了 Lambda 封装. 导出可用基于 EasyExcel 或 POI
  11. 三方接口, 统一的Toke过期时间管理, 避免限流和无效token
  12. 通用日志, 环境变量配置, 实现主子项目解耦. 当前每一个子项目对应一个客户, 子项目 mjava 也可独立部署, 提供平台通用接口服务 13.

配置

  1. 通用路径

    • 日志路径: /Users/malk/server/_Tool/var/mjava/log
    • 文件路径: Users/malk/server/_Tool/var/mjava/tmp
  2. 超时

    • nginx:如pass_proxy 配置超时5分钟
    • web:设置超时5分钟
    • server:设置超时5分钟 timeOut
    • server: 异步线程批量等待超时为10分钟 timeAwait


20220529 malk


next maven 私服

  1. 暂未配置 deploy

  2. 福氏nginx直接监听端口, 实现https

  3. 当前子项目都依赖Tomcat, 导致jar过大, 是不是考虑弄一个通用docker

update

  1. 新增jsp
  2. 新增swagger
  3. 新增webservice