项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
前言
最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个“框架”,其中虽然很多基础代码可以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
目录结构
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 库