1. 程式人生 > 程式設計 >spring-boot-plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.

spring-boot-plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.

spring-boot-plus

spring-boot-plus是一套整合spring boot常用開發元件的後臺快速開發框架

Spring-Boot-Plus是易於使用,快速,高效,功能豐富,開源的spring boot 腳手架.

前後端分離,專注於後端服務

目標

每個人都可以獨立、快速、高效地開發專案!

版本庫

GITHUB | GITEE

官網

springboot.plus

主要特性

  1. 整合spring boot 常用開發元件集、公共配置、AOP日誌等
  2. 整合mybatis plus快速dao操作
  3. 快速生成後臺程式碼: entity/param/vo/controller/service/mapper/xml
  4. 整合swagger2,可自動生成api檔案
  5. 整合jwt、shiro/spring security許可權控制
  6. 整合redis、spring cache、ehcache快取
  7. 整合rabbit/rocket/kafka mq訊息佇列
  8. 整合druid連線池,JDBC效能和慢查詢檢測
  9. 整合spring boot admin,實時檢測專案執行情況
  10. 使用assembly maven外掛進行不同環境打包部署,包含啟動、重啟命令,配置檔案提取到外部config目錄

專案架構

spring-boot-plus-architecture.jpg

專案環境

中介軟體 版本 備註
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

sys_user_swagger-zh.png

快速開始

快速開始

詳細檔案

springboot.plus

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管理頁面

http://47.105.159.10:8888

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-plus-idea

Spring Boot Admin Instances

spring-boot-admin instances

Spring Boot Admin Statistics

spring-boot-admin statistics

Spring Boot Admin Log

spring-boot-admin log

spring-boot-plus Swagger檔案

spring-boot-plus swagger docs

spring-boot-plus Java Api Docs

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.