项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
KAnts 人气:0
# 前言
最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个“框架”,其中虽然很多基础代码可以Copy,但也会浪费不少时间。
基于这个情况,我打算在GitHub上创建了一个公开库scaffold用来存放平时常用的脚手架项目。
脚手架仓库地址:https://github.com/majian159/scaffold
# 规划
实现的脚手架有:
- Java
- Spring Boot + MyBatis
规划的脚手架有:
- Java
- Spring Boot + JPA
- Spring Boot + MyBatis
- Web
- Ant design Pro
- antd
# springboot-mybatis-scaffold
第一波因为项目需求先传了 基于 sb + mybatis 的脚手架,其实我个人更喜欢 sb + jpa + ddd 的脚手架,后续在整理出来。
## 介绍
这是一个基于 SpringBoot + MyBatis + MyBatis Generator 的脚手架项目。
脚手架默认实现了一个 `department` RESTful API,用来演示。
## 脚手架集成内容
- Spring Boot
- Spring Security
- MyBatis
- MyBatis Generator
- PageHelper
- Swagger-UI
## 目录结构
```sh
scaffold
├── scaffold-api # REST API 模块
├── scaffold-common # 公共代码模块
└── scaffold-mbg # MyBatis Generator 及生成的内容
```
## 环境
- JDK8
- Lombok
## 脚手架配置
### 项目、程序包名称
使用 IDE 等工具进行批量全局替换。
### Spring
- 开启 @Async 线程池使用 `ForkJoinPool.commonPool()`
- `@EnableScheduling`
- `@EnableSwagger2`
- datasource
- MySQL
- hikari
- 最小空闲连接 5
- 连接超时 15秒
- 最大连接池大小 20
- jackson
- 不包含 null 值的属性
### MyBatis
- Mapper扫描路径
- 当前项目下的 dao/*.xml (项目中自定义的Mapper xml)
- 全局 mapper/*.xml (用于mbg生成的Mapper xml)
### MBG
> 这边只是简化了 `generatorConfig.xml` 的配置,如有个性化需求可直接修改 `generatorConfig.xml`
>
`scaffold-mbg/src/main/resources/generator.properties`
| 配置键 | 说明 | 默认值 |
| -------------------- | ------------- | ------------- |
| jdbc.driverClass | JDBC驱动类 | com.mysql.cj.jdbc.Driver |
| jdbc.connectionURL | JDBC URL | jdbc:mysql://localhost/scaffold?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai |
| jdbc.userId | 数据库用户名 | root |
| jdbc.password | 数据库密码 | root |
| common.basePackage | 基础的包名 | com.scaffold.springboot.mybatis.mbg |
| common.basePath | 基础的路径 | scaffold-mbg |
### Application
`scaffold-api/src/main/resources/application.yml`
| 配置键 | 说明 | 默认值 |
| ----------------------- | ------------- | ------------- |
| application.basePackage | 基础 package,用来简化项目改名后带来的负担 | com.scaffold.springboot.mybatis |
### RestControllerAdvice
当 Controller 抛出 `ServiceException`, `ApiException` 异常时会经由 Advice 自动包装成 `ApiErrorViewModel`, 并返回对应的 HttpStatusCode.
# 写在最后
这是一个高个人意愿的脚手架仓库,大家可以不用完全使用,只是参考部分内容,希望对大家有所帮助
脚手架仓库地址:https://github.com/majian159/scaffold
"阅读原文" 可直达 GitHub 库
加载全部内容