最近啟動了一個新的項目發現,每當一個新項目的啟動往往需要從頭搭建一個“架構”,其中雖然很多基礎代碼可以Copy,但也會浪費不少時間。
基于這個情況,我打算在GitHub上建立了一個公開庫scaffold用來存放平時常用的腳手架項目。
腳手架倉庫位址:https://github.com/majian159/scaffold
實作的腳手架有:
Java
Spring Boot + MyBatis
規劃的腳手架有:
Spring Boot + JPA
Web
Ant design Pro
antd
第一波因為項目需求先傳了 基于 sb + mybatis 的腳手架,其實我個人更喜歡 sb + jpa + ddd 的腳手架,後續在整理出來。
這是一個基于 SpringBoot + MyBatis + MyBatis Generator 的腳手架項目。
腳手架預設實作了一個 <code>department</code> RESTful API,用來示範。
Spring Boot
Spring Security
MyBatis
MyBatis Generator
PageHelper
Swagger-UI
JDK8
Lombok
使用 IDE 等工具進行批量全局替換。
開啟 @Async 線程池使用 <code>ForkJoinPool.commonPool()</code>
<code>@EnableScheduling</code>
<code>@EnableSwagger2</code>
datasource
MySQL
hikari
最小空閑連接配接 5
連接配接逾時 15秒
最大連接配接池大小 20
jackson
不包含 null 值的屬性
Mapper掃描路徑
目前項目下的 dao/*.xml (項目中自定義的Mapper xml)
全局 mapper/*.xml (用于mbg生成的Mapper xml)
這邊隻是簡化了 <code>generatorConfig.xml</code> 的配置,如有個性化需求可直接修改 <code>generatorConfig.xml</code>
<code>scaffold-mbg/src/main/resources/generator.properties</code>
配置鍵
說明
預設值
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
資料庫密碼
common.basePackage
基礎的包名
com.scaffold.springboot.mybatis.mbg
common.basePath
基礎的路徑
scaffold-mbg
<code>scaffold-api/src/main/resources/application.yml</code>
application.basePackage
基礎 package,用來簡化項目改名後帶來的負擔
com.scaffold.springboot.mybatis
當 Controller 抛出 <code>ServiceException</code>, <code>ApiException</code> 異常時會經由 Advice 自動包裝成 <code>ApiErrorViewModel</code>, 并傳回對應的 HttpStatusCode.
這是一個高個人意願的腳手架倉庫,大家可以不用完全使用,隻是參考部分内容,希望對大家有所幫助
"閱讀原文" 可直達 GitHub 庫