溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-09-03 13:28:23 來源:網(wǎng)絡(luò) 閱讀:327 作者:geekidea 欄目:編程語言

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

spring-boot-plus是一套集成spring boot常用開發(fā)組件的后臺(tái)快速開發(fā)框架

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

前后端分離,專注于后端服務(wù)

目標(biāo)

每個(gè)人都可以獨(dú)立、快速、高效地開發(fā)項(xiàng)目!

版本庫

GITHUB | GITEE

官網(wǎng)

springboot.plus

主要特性

  1. 集成spring boot 常用開發(fā)組件集、公共配置、AOP日志等
  2. 集成mybatis plus快速dao操作
  3. 快速生成后臺(tái)代碼: entity/param/vo/controller/service/mapper/xml
  4. 集成swagger2,可自動(dòng)生成api文檔
  5. 集成jwt、shiro/spring security權(quán)限控制
  6. 集成redis、spring cache、ehcache緩存
  7. 集成rabbit/rocket/kafka mq消息隊(duì)列
  8. 集成druid連接池,JDBC性能和慢查詢檢測(cè)
  9. 集成spring boot admin,實(shí)時(shí)檢測(cè)項(xiàng)目運(yùn)行情況
  10. 使用assembly maven插件進(jìn)行不同環(huán)境打包部署,包含啟動(dòng)、重啟命令,配置文件提取到外部config目錄

項(xiàng)目架構(gòu)

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

項(xiàng)目環(huán)境

中間件 版本 備注
JDK 1.8+ JDK1.8及以上
MySQL 5.7+ 5.7及以上
Redis 3.2+

技術(shù)選型

技術(shù) 版本 備注
Spring Boot 2.2.0.RELEASE 最新發(fā)布穩(wěn)定版
Spring Framework 5.2.0.RELEASE 最新發(fā)布穩(wěn)定版
Mybatis 3.5.2 持久層框架
Mybatis Plus 3.2.0 mybatis增強(qiáng)框架
Alibaba Druid 1.1.20 數(shù)據(jù)源
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 后臺(tái)參數(shù)校驗(yàn)注解
Shiro 1.4.1 權(quán)限控制
JWT 3.8.3 JSON WEB TOKEN
hutool-all 5.0.3 常用工具集
lombok 1.18.10 注解生成Java Bean等工具
mapstruct 1.3.1.Final 對(duì)象屬性復(fù)制工具

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 構(gòu)建

默認(rèn)使用local環(huán)境,對(duì)應(yīng)配置文件:application-local.yml

mvn clean package -Plocal

5分鐘完成增刪改查

1. 創(chuàng)建數(shù)據(jù)庫表

-- ----------------------------
-- 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 '狀態(tài),0:禁用,1:?jiǎn)⒂?,
    `version`       int(11)     NOT NULL DEFAULT '0' COMMENT '版本',
    `create_time`   timestamp   NULL     DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
    `update_time`   timestamp   NULL     DEFAULT NULL COMMENT '修改時(shí)間',
    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, name, foo, bar, remark, state, version, create_time, update_time) 
    VALUES (2, 'HelloWorld', 'hello', 'world', null, 1, 0, '2019-11-01 14:05:14', null);

2.使用代碼生成器生成增刪改查代碼

修改數(shù)據(jù)庫信息

修改組件名稱/作者/數(shù)據(jù)庫表名稱/主鍵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();
        // 公共配置
        // 數(shù)據(jù)庫配置
        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);

        // 生成實(shí)體映射相關(guān)代碼,可用于數(shù)據(jù)庫字段更新
        // 當(dāng)數(shù)據(jù)庫字段更新時(shí),可自定義自動(dòng)生成哪些那文件
        codeGenerator
                .setGeneratorEntity(true)
                .setGeneratorQueryParam(true)
                .setGeneratorQueryVo(true);

        // 生成業(yè)務(wù)相關(guān)代碼
        codeGenerator
                .setGeneratorController(true)
                .setGeneratorService(true)
                .setGeneratorServiceImpl(true)
                .setGeneratorMapper(true)
                .setGeneratorMapperXml(true);

        // 是否生成Shiro RequiresPermissions注解
        codeGenerator.setRequiresPermissions(false);

        // 是否覆蓋已有文件
        codeGenerator.setFileOverride(true);

        // 初始化公共變量
        codeGenerator.init();

        // 需要生成的表數(shù)組
        // xxx,yyy,zzz為需要生成代碼的表名稱
        String[] tables = {
                "foo_bar"
        };

        // 循環(huán)生成
        for (String table : tables) {
            // 設(shè)置需要生成的表名稱
            codeGenerator.setTableName(table);
            // 生成代碼
            codeGenerator.generator();
        }

    }

}

生成的代碼結(jié)構(gòu)

/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. 啟動(dòng)項(xiàng)目

項(xiàng)目入口類

/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java
/**
 * spring-boot-plus 項(xiàng)目啟動(dòng)入口
 * @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) {
        // 啟動(dòng)spring-boot-plus
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootPlusApplication.class, args);
        // 打印項(xiàng)目信息
        PrintApplicationInfo.print(context);
    }

}

4. 訪問項(xiàng)目swagger文檔

http://127.0.0.1:8888/swagger-ui.html

5. 系統(tǒng)用戶 增刪改查分頁Swagger

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

快速開始

快速開始

詳細(xì)文檔

https://springboot.plus

CentOS快速安裝環(huán)境/構(gòu)建/部署/啟動(dòng)spring-boot-plus項(xiàng)目

1. 下載安裝腳本

安裝 jdk, git, maven, redis, mysql

wget -O download-install-all.sh https://springboot.plus/bin/download-install-all.sh

2. 運(yùn)行安裝腳本

sh download-install-all.sh

3. 修改MySQL密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Springbootplus666!';
exit
mysql -uroot -pSpringbootplus666!

4. 導(dǎo)入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. 執(zhí)行腳本

sh deploy.sh

7.訪問項(xiàng)目

SpringBootAdmin管理頁面

http://47.105.159.10:8888

spring-boot-plus Swagger文檔頁面

http://47.105.159.10:8888/docs

8. 查看項(xiàng)目運(yùn)行日志

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是易于使用,快速,高效,功能豐富,開源的spring boot 腳手

Spring Boot Admin Instances

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

Spring Boot Admin Statistics

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

Spring Boot Admin Log

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

spring-boot-plus Swagger文檔

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

spring-boot-plus Java Api Docs

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

spring-boot-plus 視頻 :movie_camera:

  • 5分鐘完成增刪改查
  • CentOS 快速安裝 JDK/Git/Maven/Redis/MySQL
  • CentOS 快速部署/構(gòu)建/打包/運(yùn)行項(xiàng)目

License

spring-boot-plus is under the Apache 2.0 license. See the LICENSE file for details.

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI