spring-boot-plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.
阿新 • • 發佈:2019-12-31
spring-boot-plus是一套整合spring boot常用開發元件的後臺快速開發框架
Spring-Boot-Plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.
前後端分離,專注於後端服務
目標
每個人都可以獨立、快速、高效地開發專案!
版本庫
GITHUB | GITEE
官網
springboot.plus
主要特性
- 整合spring boot 常用開發元件集、公共配置、AOP日誌等
- 整合mybatis plus快速dao操作
- 快速生成後臺程式碼: entity/param/vo/controller/service/mapper/xml
- 整合swagger2,可自動生成api檔案
- 整合jwt、shiro/spring security許可權控制
- 整合redis、spring cache、ehcache快取
- 整合rabbit/rocket/kafka mq訊息佇列
- 整合druid連線池,JDBC效能和慢查詢檢測
- 整合spring boot admin,實時檢測專案執行情況
- 使用assembly maven外掛進行不同環境打包部署,包含啟動、重啟命令,配置檔案提取到外部config目錄
專案架構
專案環境
中介軟體 | 版本 | 備註 |
---|---|---|
JDK | 1.8+ | JDK1.8及以上 |
MySQL | 5.7+ | 5.7及以上 |
Redis | 3.2+ |
技術選型
技術 | 版本 | 備註 |
---|---|---|
Spring Boot | 2.2.0.RELEASE | 最新發布穩定版 |
Spring Framework | 5.2.0.RELEASE | 最新發布穩定版 |
Mybatis | 3.5.2 | 持久層框架 |
Mybatis Plus | 3.2.0 | mybatis增強框架 |
Alibaba Druid | 1.1.20 | 資料來源 |
Fastjson | 1.2.62 | JSON處理工具集 |
swagger2 | 2.6.1 | api檔案生成工具 |
commons-lang3 | 3.9 | 常用工具包 |
commons-io | 2.6 | IO工具包 |
commons-codec | 1.13 | 加密解密等工具包 |
commons-collections4 | 4.4 | 集合工具包 |
reflections | 0.9.11 | 反射工具包 |
hibernate-validator | 6.0.17.Final | 後臺引數校驗註解 |
Shiro | 1.4.1 | 許可權控制 |
JWT | 3.8.3 | JSON WEB TOKEN |
hutool-all | 5.0.3 | 常用工具集 |
lombok | 1.18.10 | 註解生成Java Bean等工具 |
mapstruct | 1.3.1.Final | 物件屬性複製工具 |
CHANGELOG
CHANGELOG.md
Java Docs
Java Api Docs
使用
克隆 spring-boot-plus
git clone https://github.com/geekidea/spring-boot-plus.git
cd spring-boot-plus
複製程式碼
Maven 構建
預設使用local環境,對應配置檔案:application-local.yml
mvn clean package -Plocal
複製程式碼
5分鐘完成增刪改查
1. 建立資料庫表
-- ----------------------------
-- Table structure for foo_bar
-- ----------------------------
DROP TABLE IF EXISTS `foo_bar`;
CREATE TABLE `foo_bar`
(
`id` bigint(20) NOT NULL COMMENT '主鍵',`name` varchar(20) NOT NULL COMMENT '名稱',`foo` varchar(20) DEFAULT NULL COMMENT 'Foo',`bar` varchar(20) NOT NULL COMMENT 'Bar',`remark` varchar(200) DEFAULT NULL COMMENT '備註',`state` int(11) NOT NULL DEFAULT '1' COMMENT '狀態,0:禁用,1:啟用',`version` int(11) NOT NULL DEFAULT '0' COMMENT '版本',`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',`update_time` timestamp NULL DEFAULT NULL COMMENT '修改時間',PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT ='FooBar';
-- ----------------------------
-- Records of foo_bar
-- ----------------------------
INSERT INTO foo_bar (id,name,foo,bar,remark,state,version,create_time,update_time)
VALUES (1,'FooBar','foo','bar','remark...',1,0,'2019-11-01 14:05:14',null);
INSERT INTO foo_bar (id,update_time)
VALUES (2,'HelloWorld','hello','world',null,null);
複製程式碼
2.使用程式碼生成器生成增刪改查程式碼
修改資料庫資訊
修改元件名稱/作者/資料庫表名稱/主鍵id
/src/test/java/io/geekidea/springbootplus/test/SpringBootPlusGenerator.java
複製程式碼
/**
* spring-boot-plus程式碼生成器入口類
*
* @author geekidea
* @date 2019-10-22
**/
public class SpringBootPlusGenerator {
public static void main(String[] args) {
CodeGenerator codeGenerator = new CodeGenerator();
// 公共配置
// 資料庫配置
codeGenerator
.setUserName("root")
.setPassword("root")
.setDriverName("com.mysql.jdbc.Driver")
.setDriverUrl("jdbc:mysql://localhost:3306/spring_boot_plus?useUnicode=true&characterEncoding=UTF-8&useSSL=false");
// 包資訊
codeGenerator
.setProjectPackagePath("io/geekidea/springbootplus")
.setParentPackage("io.geekidea.springbootplus");
// 元件作者等配置
codeGenerator
.setModuleName("foobar")
.setAuthor("geekidea")
.setPkIdColumnName("id");
// 生成策略
codeGenerator
.setGeneratorStrategy(CodeGenerator.GeneratorStrategy.ALL)
.setPageListOrder(true)
.setParamValidation(true);
// 生成實體對映相關程式碼,可用於資料庫欄位更新
// 當資料庫欄位更新時,可自定義自動生成哪些那檔案
codeGenerator
.setGeneratorEntity(true)
.setGeneratorQueryParam(true)
.setGeneratorQueryVo(true);
// 生成業務相關程式碼
codeGenerator
.setGeneratorController(true)
.setGeneratorService(true)
.setGeneratorServiceImpl(true)
.setGeneratorMapper(true)
.setGeneratorMapperXml(true);
// 是否生成Shiro RequiresPermissions註解
codeGenerator.setRequiresPermissions(false);
// 是否覆蓋已有檔案
codeGenerator.setFileOverride(true);
// 初始化公共變數
codeGenerator.init();
// 需要生成的表陣列
// xxx,yyy,zzz為需要生成程式碼的表名稱
String[] tables = {
"foo_bar"
};
// 迴圈生成
for (String table : tables) {
// 設定需要生成的表名稱
codeGenerator.setTableName(table);
// 生成程式碼
codeGenerator.generator();
}
}
}
複製程式碼
生成的程式碼結構
/src/main/java/io/geekidea/springbootplus/foobar
複製程式碼
└── foobar
├── controller
│ └── FooBarController.java
├── entity
│ └── FooBar.java
├── mapper
│ └── FooBarMapper.java
├── param
│ └── FooBarQueryParam.java
├── service
│ ├── FooBarService.java
│ └── impl
│ └── FooBarServiceImpl.java
└── vo
└── FooBarQueryVo.java
複製程式碼
Mapper XML
/src/main/resources/mapper/foobar/FooBarMapper.xml
複製程式碼
3. 啟動專案
專案入口類
/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java
複製程式碼
/**
* spring-boot-plus 專案啟動入口
* @author geekidea
* @since 2018-11-08
*/
@EnableAsync
@EnableScheduling
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableAdminServer
@MapperScan({"io.geekidea.springbootplus.**.mapper"})
@SpringBootApplication
public class SpringBootPlusApplication {
public static void main(String[] args) {
// 啟動spring-boot-plus
ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class,args);
// 列印專案資訊
PrintApplicationInfo.print(context);
}
}
複製程式碼
4. 訪問專案swagger檔案
http://127.0.0.1:8888/swagger-ui.html
5. 系統使用者 增刪改查分頁Swagger
快速開始
詳細檔案
CentOS快速安裝環境/構建/部署/啟動spring-boot-plus專案
1. 下載安裝指令碼
安裝
jdk
,git
,maven
,redis
,mysql
wget -O download-install-all.sh https://springboot.plus/bin/download-install-all.sh
複製程式碼
2. 執行安裝指令碼
sh download-install-all.sh
複製程式碼
3. 修改MySQL密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Springbootplus666!';
exit
mysql -uroot -pSpringbootplus666!
複製程式碼
4. 匯入MySQL指令碼
create database if not exists spring_boot_plus character set utf8mb4;
use spring_boot_plus;
source /root/mysql_spring_boot_plus.sql;
show tables;
exit
複製程式碼
5. 下載部署指令碼 deploy.sh
wget -O deploy.sh https://springboot.plus/bin/deploy.sh
複製程式碼
6. 執行指令碼
sh deploy.sh
複製程式碼
7.訪問專案
SpringBootAdmin管理頁面
spring-boot-plus Swagger檔案頁面
http://47.105.159.10:8888/docs
8. 檢視專案執行日誌
tail -f -n 1000 /root/spring-boot-plus-server/logs/spring-boot-plus.log
複製程式碼
spring-boot-plus Views
spring-boot-plus IDEA Sources Views
Spring Boot Admin Instances
Spring Boot Admin Statistics
Spring Boot Admin Log
spring-boot-plus Swagger檔案
spring-boot-plus Java Api Docs
spring-boot-plus 視訊 :movie_camera:
License
spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.