Spring-Boot-Api-Starter 基於Spring Boot快速構建項目的腳手架

簡介

Spring-Boot-Api-Starter是一個基於SpringBoot,快速構建RESTful API工程的腳手架,支持多數據源配置、分佈式事務;快速生成各模塊的基礎代碼,極大的提升了開發效率,使團隊代碼風格保持統一。
項目地址:https://github.com/WongMinHo/spring-boot-api-starter

特徵

  • 集成 Spring Boot 常用開發組件集
  • 集成 Mybatis Plus、Mybatis Plus Generator組件;實現單表業務零SQL
  • 集成 Atomikos 支持分佈式事務、以及支持多數據源配置
  • 統一異常處理
  • 統一響應結果封裝
  • 基於 JWT 實現基於 Token 的鑑權機制
  • 使用 Druid Spring Boot Starter 集成 Druid 數據庫連接池與監控
  • 使用 AutoGenerator 快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個模塊的代碼,極大的提升了開發效率,使團隊代碼風格保持統一

項目環境

中間件 版本 備註
JDK 1.8+ JDK1.8及以上
MySQL 5.6+ 5.6及以上,如果使用Druid的分佈式驅動,暫不支持8.0+

技術選型

技術 版本 備註
Spring Boot 2.1.9.RELEASE 最新發布穩定版
Mybatis 3.5.2 持久層框架
Mybatis Plus 3.2.0 Mybatis增強框架
Mybatis Plus Generator 3.2.0 MyBatis-Plus 的代碼生成器
Jta-Atomikos 2.1.9.RELEASE 分佈式事務管理
Alibaba Druid 1.1.20 數據源
FastJson 1.2.60 JSON處理工具集
commons-lang3 3.9 常用工具包
jwt 0.9.1 json web token
lombok 1.18.10 註解生成Java Bean等工具

快速開始

  1. 克隆項目:git clone https://github.com/WongMinHo/spring-boot-api-starter.git
  2. 構建數據庫,多數據源可以先創建兩個數據庫,參考如下sql
  3. test包內的代碼生成器MysqlFirstGeneratorMysqlSecondGenerator進行配置,修改對應的連接地址、包目錄、作者等
  4. 輸入表名,運行代碼生成器,生成基礎目錄和代碼結構,根據業務在基礎代碼上進行擴展
  5. 修改本地環境配置文件application-local.yml,啓動項目

創建兩個數據庫和數據表

#創建第一個數據庫和數據表
CREATE DATABASE minhow_first;
-- ----------------------------
-- Table structure for mh_user
-- ----------------------------
USE minhow_first;
DROP TABLE IF EXISTS `mh_user`;
CREATE TABLE `mh_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',
  `password` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '密碼',
  `customer_num` int(11) DEFAULT '0' COMMENT '客戶數',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of mh_user
-- ----------------------------
INSERT INTO `mh_user` VALUES (1, 'minhow', NULL, 0);

#創建第二個數據庫和數據表
CREATE DATABASE minhow_second;
-- ----------------------------
-- Table structure for mh_customer
-- ----------------------------
USE minhow_second;
DROP TABLE IF EXISTS `mh_customer`;
CREATE TABLE `mh_customer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT '用戶id',
  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',
  `phone` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手機號',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

開發建議

  • 開發規範可以參考阿里巴巴Java開發手冊(最新版下載)
  • 公司內部可以把統一異常處理、統一響應結果、鑑權工具類等公共模塊封裝打包;項目需要用到時,引入工具包。
  • API文檔可以使用:Swagger2ShowDoc

相關技術文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章