簡介
Spring-Boot-Api-Starter是一個基于SpringBoot
压真,快速構建RESTful API
工程的腳手架,支持多數(shù)據(jù)源配置蘑险、分布式事務滴肿;快速生成各模塊的基礎代碼,極大的提升了開發(fā)效率佃迄,使團隊代碼風格保持統(tǒng)一泼差。
項目地址:https://github.com/WongMinHo/spring-boot-api-starter
特征
- 集成 Spring Boot 常用開發(fā)組件集
- 集成 Mybatis Plus贵少、Mybatis Plus Generator組件;實現(xiàn)單表業(yè)務零SQL
- 集成 Atomikos 支持分布式事務堆缘、以及支持多數(shù)據(jù)源配置
- 統(tǒng)一異常處理
- 統(tǒng)一響應結果封裝
- 基于 JWT 實現(xiàn)基于 Token 的鑒權機制
- 使用 Druid Spring Boot Starter 集成 Druid 數(shù)據(jù)庫連接池與監(jiān)控
- 使用 AutoGenerator 快速生成 Entity滔灶、Mapper、Mapper XML吼肥、Service录平、Controller 等各個模塊的代碼,極大的提升了開發(fā)效率缀皱,使團隊代碼風格保持統(tǒng)一
項目環(huán)境
中間件 |
版本 |
備注 |
JDK |
1.8+ |
JDK1.8及以上 |
MySQL |
5.6+ |
5.6及以上萄涯,如果使用Druid的分布式驅動,暫不支持8.0+ |
技術選型
技術 |
版本 |
備注 |
Spring Boot |
2.1.9.RELEASE |
最新發(fā)布穩(wěn)定版 |
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 |
數(shù)據(jù)源 |
FastJson |
1.2.60 |
JSON處理工具集 |
commons-lang3 |
3.9 |
常用工具包 |
jwt |
0.9.1 |
json web token |
lombok |
1.18.10 |
注解生成Java Bean等工具 |
快速開始
- 克隆項目:
git clone https://github.com/WongMinHo/spring-boot-api-starter.git
- 構建數(shù)據(jù)庫唆鸡,多數(shù)據(jù)源可以先創(chuàng)建兩個數(shù)據(jù)庫,參考如下sql
- 對
test
包內的代碼生成器MysqlFirstGenerator
枣察、MysqlSecondGenerator
進行配置争占,修改對應的連接地址、包目錄序目、作者等
- 輸入表名臂痕,運行代碼生成器,生成基礎目錄和代碼結構猿涨,根據(jù)業(yè)務在基礎代碼上進行擴展
- 修改本地環(huán)境配置文件
application-local.yml
握童,啟動項目
創(chuàng)建兩個數(shù)據(jù)庫和數(shù)據(jù)表
#創(chuàng)建第一個數(shù)據(jù)庫和數(shù)據(jù)表
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 '客戶數(shù)',
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);
#創(chuàng)建第二個數(shù)據(jù)庫和數(shù)據(jù)表
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;
開發(fā)建議
- 開發(fā)規(guī)范可以參考阿里巴巴Java開發(fā)手冊(最新版下載)
- 公司內部可以把統(tǒng)一異常處理、統(tǒng)一響應結果叛赚、鑒權工具類等公共模塊封裝打包澡绩;項目需要用到時,引入工具包俺附。
- API文檔可以使用:Swagger2肥卡、ShowDoc。
相關技術文檔
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者