前言
最近啟動了一個新的項目發現,每當一個新項目的啟動往往需要從頭搭建一個“框架”,其中雖然很多基礎代碼可以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 庫