fyz 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
..
com 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
frp 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
nginx 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
sample 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
driver.yml 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
readme.md 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
search.sh 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
server.sh 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ
winsw.xml 71398fa967 初始化提交git普林贝利项目 3 mēneši atpakaļ

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 封装. 导出可用基于 EasyExcelPOI
  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