項目腳手架 - 《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 庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM