🧧🎖️🥇🏅🏆
MJGA 是一款基于以下理念设计的现代化 Java Web 脚手架。
- 通过
docker-compose.yml
管理应用程序的整个生命周期与配置。 - 通过
.env
文件自定义所有配置。 - 通过
docker-compose.yml
交付整个应用程序和配套的生态组件。
- 集成了常用的基础业务功能,如身份验证、权限管理和缓存抽象。
- Code Check&Format、CI/CD Plugin 、Docker Integration 全部开箱即用。
- 完善的、从设计出发的、隔离了运行环境的单元测试。
- 现代化:技术选型紧跟开源社区风向。
- 可配置化:支持在网页上选配组件。
- 考究的编码:每个变量和函数、每个模块和组件都考虑最佳实践。
- Not-all-in-one:现在和未来,MJGA 都将守好自己的边界。
技术栈 | 版本号 | |
---|---|---|
OpenJdk | 17 | |
SpringBoot | 3.2.5 | 核心框架 |
SpringDoc | 2.2.0 | 生成 OpenAPI 文档 |
TestContainers | 1.19.7 | 为测试环境提供容器支持 |
Jooq | 3.18.6 | 生成类型安全的 SQL 查询 |
Gradle | 8.7 | 自动化构建工具 |
Pmd | 6.55.0 | 静态代码分析工具 |
Spotless | 6.25.0 | 代码格式化 |
... | ... | ... |
一、确认默认的环境变量配置。
# env will be applied to compose.yaml
less ${projectRoot}/.env
三、启动容器。
cd ${projectRoot}
docker-compose up -d
# confirm .env and make sure process can use it
nano/vim ${projectRoot}/.env
${projectRoot}/gradlew bootRun
# confirm .env and make sure process can use it
nano/vim ${projectRoot}/.env
# generate schema mapping codes
./gradlew generateJooq
# output ->
# projectRootDir/build/generated-src
# └── jooq
# └── tables # table mapping
# ├── daos # Data Access Layer
# ├── pojos # mapping dto
# └── records # jooq query record