首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架

spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架

原创
作者头像
geekidea
修改于 2019-11-04 03:49:35
修改于 2019-11-04 03:49:35
1.1K0
举报
文章被收录于专栏:geekideageekidea

![spring-boot-plus](https://springboot.plus/img/logo.png)

### spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架

> Spring-Boot-Plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架.

> 前后端分离,专注于后端服务

## 目标

> 每个人都可以独立、快速、高效地开发项目!

## 版本库

#### [GITHUB](https://github.com/geekidea/spring-boot-plus) | [GITEE](https://gitee.com/geekidea/spring-boot-plus)

## 官网

#### [springboot.plus](http://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](https://spring-boot-plus.gitee.io/img/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](https://github.com/geekidea/spring-boot-plus/blob/master/CHANGELOG.md)

## Java Docs

#### [Java Api Docs](https://apidoc.gitee.com/geekidea/spring-boot-plus/)

## 使用

### 克隆 spring-boot-plus

```bash

git clone https://github.com/geekidea/spring-boot-plus.git

cd spring-boot-plus

```

### Maven 构建

> 默认使用local环境,对应配置文件:application-local.yml

```bash

mvn clean package -Plocal

```

## 5分钟完成增删改查

### 1. 创建数据库

```sql

-- ----------------------------

-- Table structure for foo_ba

-- ----------------------------

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_ba

-- ----------------------------

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.使用代码生成器生成增删改查代码

> 修改数据库信息

>修改组件名称/作者/数据库表名称/主键id

```text

/src/test/java/io/geekidea/springbootplus/test/SpringBootPlusGenerator.java

```

```java

/**

* spring-boot-plus代码生成器入口类

*

* @author geekidea

* @date 2019-10-22

**/

public class SpringBootPlusGenerator {

public static void main(String[] args) {

CodeGenerator codeGenerator = new CodeGenerator();

// 公共配置

// 数据库配置

codeGenerato

.setUserName("root")

.setPassword("root")

.setDriverName("com.mysql.jdbc.Driver")

.setDriverUrl("jdbc:mysql://localhost:3306/spring_boot_plus?useUnicode=true&characterEncoding=UTF-8&useSSL=false");

// 包信息

codeGenerato

.setProjectPackagePath("io/geekidea/springbootplus")

.setParentPackage("io.geekidea.springbootplus");

// 组件作者等配置

codeGenerato

.setModuleName("foobar")

.setAuthor("geekidea")

.setPkIdColumnName("id");

// 生成策略

codeGenerato

.setGeneratorStrategy(CodeGenerator.GeneratorStrategy.ALL)

.setPageListOrder(true)

.setParamValidation(true);

// 生成实体映射相关代码,可用于数据库字段更新

// 当数据库字段更新时,可自定义自动生成哪些那文件

codeGenerato

.setGeneratorEntity(true)

.setGeneratorQueryParam(true)

.setGeneratorQueryVo(true);

// 生成业务相关代码

codeGenerato

.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();

}

}

}

```

> 生成的代码结构

```text

/src/main/java/io/geekidea/springbootplus/fooba

```

```text

└── fooba

├── controlle

│   └── FooBarController.java

├── entity

│   └── FooBar.java

├── mappe

│   └── FooBarMapper.java

├── param

│   └── FooBarQueryParam.java

├── service

│   ├── FooBarService.java

│   └── impl

│   └── FooBarServiceImpl.java

└── vo

└── FooBarQueryVo.java

```

> Mapper XML

```text

/src/main/resources/mapper/foobar/FooBarMapper.xml

```

### 3. 启动项目

> 项目入口类

```text

/src/main/java/io/geekidea/springbootplus/SpringBootPlusApplication.java

```

```java

/**

* spring-boot-plus 项目启动入口

* @author geekidea

* @since 2018-11-08

*/

@EnableAsync

@EnableScheduling

@EnableTransactionManagement

@EnableConfigurationProperties

@EnableAdminServe

@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](http://127.0.0.1:8888/swagger-ui.html)

### 5. 系统用户 增删改查分页Swagge

![sys_user_swagger-zh.png](https://spring-boot-plus.gitee.io/img/sys_user_swagger-zh.png)

## 快速开始

[快速开始](https://springboot.plus/guide/quick-start.html)

## 详细文档

[https://springboot.plus](https://springboot.plus)

## CentOS快速安装环境/构建/部署/启动spring-boot-plus项目

### 1. 下载安装脚本

> 安装 `jdk`, `git`, `maven`, `redis`, `mysql`

```bash

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

```

### 2. 运行安装脚本

```bash

sh download-install-all.sh

```

### 3. 修改MySQL密码

```bash

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Springbootplus666!';

exit

mysql -uroot -pSpringbootplus666!

```

### 4. 导入MySQL脚本

```bash

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`

```bash

wget -O deploy.sh https://springboot.plus/bin/deploy.sh

```

### 6. 执行脚本

```bash

sh deploy.sh

```

### 7.访问项目

> SpringBootAdmin管理页面

[http://47.105.159.10:8888](http://47.105.159.10:8888)

> spring-boot-plus Swagger文档页面

[http://47.105.159.10:8888/docs](http://47.105.159.10:8888/docs)

### 8. 查看项目运行日志

```bash

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](https://spring-boot-plus.gitee.io/img/home/spring-boot-plus-idea.png)

### [Spring Boot Admin Instances](http://47.105.159.10:8888/instances/e211ba082db8/details)

![spring-boot-admin instances](https://spring-boot-plus.gitee.io/img/home/spring-boot-admin.png)

### [Spring Boot Admin Statistics](http://47.105.159.10:8888/instances/e211ba082db8/details)

![spring-boot-admin statistics](https://spring-boot-plus.gitee.io/img/home/spring-boot-admin-1.png)

### [Spring Boot Admin Log](http://47.105.159.10:8888/instances/e211ba082db8/logfile)

![spring-boot-admin log](https://spring-boot-plus.gitee.io/img/home/spring-boot-admin-log.png)

### [spring-boot-plus Swagger文档](http://47.105.159.10:8888/swagger-ui.html)

![spring-boot-plus swagger docs](https://spring-boot-plus.gitee.io/img/home/spring-boot-plus-swagger.png)

### [spring-boot-plus Java Api Docs](http://geekidea.io/spring-boot-plus-apidocs/)

![spring-boot-plus Java Api Docs](https://spring-boot-plus.gitee.io/img/home/spring-boot-plus-java-apidocs.png)

## spring-boot-plus 视频 :movie_camera:

- [5分钟完成增删改查](https://www.bilibili.com/video/av67401204)

- [CentOS 快速安装 JDK/Git/Maven/Redis/MySQL](https://www.bilibili.com/video/av67218836/)

- [CentOS 快速部署/构建/打包/运行项目](https://www.bilibili.com/video/av67218970/)

## License

spring-boot-plus is under the Apache 2.0 license. See the [LICENSE](https://github.com/geekidea/spring-boot-plus/blob/master/LICENSE) file for details.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目
CentOS Quick Installation Environment / Build / Deploy / Launch Spring-boot-plus Project
geekidea
2019/09/09
5060
spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目
Spring开源脚手架介绍
微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发,项目加入常见的企业级应用所涉及到的技术点,例如
派大星在吗
2021/12/15
9540
Spring Boot:整合MyBatis框架
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis是一款半ORM框架,相对于Hibernate这样的完全ORM框架,MyBatis显得更加灵活,因为可以直接控制SQL语句,所以使用MyBatis可以非常方便的实现各种复杂的查询需求。当然了,有利必有弊,也正因为太过自由,所以需要自己编写SQL语句,而如何编写更为简洁高效的SQL语句,也是一门学问。
朝雨忆轻尘
2019/06/19
6960
Spring Boot:整合MyBatis框架
一款快速+高效+大气的后台开发框架 | 每日开源
Spring-Boot-Plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架,前后端分离,专注于后端服务,让每个人都可以独立、快速、高效地开发项目!
终码一生
2022/04/14
5010
一款快速+高效+大气的后台开发框架 | 每日开源
还在从零开始搭建项目?试试这款基于SpringBoot 3的快速开发脚手架!
mall-tiny是一款基于SpringBoot+MyBatis-Plus的快速开发脚手架,目前在Github上已有1600+Star。它拥有完整的权限管理功能,支持使用MyBatis-Plus代码生成器生成代码,可对接mall项目的Vue前端,开箱即用。
macrozheng
2023/11/08
1.8K0
还在从零开始搭建项目?试试这款基于SpringBoot 3的快速开发脚手架!
spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
spring-boot-plus 一套集成spring boot常用开发组件的后台快速开发脚手架 Purpose 每个人都可以独立、快速、高效地开发项目! Everyone can develop projects independently, quickly and efficiently! 官网地址:springboot.plus GITHUB:https://github.com/geekidea/spring-boot-plus GITEE:https://gitee.com/geekidea/sp
geekidea
2019/08/06
8350
spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个“框架”,其中虽然很多基础代码可以Copy,但也会浪费不少时间。 基于这个情况,我打算在GitHub上创建了一个公开库scaffold用来存放平时常用的脚手架项目。 脚手架仓库地址:https://github.com/majian159/scaffold
落跑架构师M
2020/04/10
1.1K0
项目推荐:成熟项目脚手架,铸就快速开发
今天分享一个已非常成熟的java项目,用来做项目的脚手架也非常不错。包含后端、前端项目。使用的也是国内非常流行的技术、框架。使用该项目做完脚手架可以大大减少从零到一构建项目所需花的时间和痛苦。
BUG弄潮儿
2025/05/18
1830
项目推荐:成熟项目脚手架,铸就快速开发
Spring Boot:实现MyBatis动态数据源
在很多具体应用场景中,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库。又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动态数据源方案进行解决。接下来,我们就来讲解如何实现动态数据源,以及在过程中剖析动态数据源背后的实现原理。
朝雨忆轻尘
2019/06/19
2.1K0
Spring Boot:实现MyBatis动态数据源
Spring Boot:整合JdbcTemplate
Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具。我们可以借助JdbcTemplate来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用jdbc带来的繁琐编码。
朝雨忆轻尘
2019/06/19
2.6K0
Spring Boot:整合JdbcTemplate
来看看这个超好用的项目脚手架吧!5分钟搭建一个Spring Boot 前后端分离系统!
这个项目我其实很早就有关注。5 月 16 日的时候,我就已经将其收录进了CodingDocs/awesome-java (非常棒的 Java 开源项目集合)中的快速开发脚手架这一模块中。
Guide哥
2021/09/16
3.3K0
Spring Boot:实现MyBatis动态创建表
在有些应用场景中,我们会有需要动态创建和操作表的需求。比如因为单表数据存储量太大而采取分表存储的情况,又或者是按日期生成日志表存储系统日志等等。这个时候就需要我们动态的生成和操作数据库表了。而我们都知道,以往我们使用MyBatis是需要提前生成包括Model,Mapper和XML映射文件的,显然因为动态生成和操作表的需求一开始表都是不存在的,所以也就不能直接通过MyBatis连接数据库来生成我们的数据访问层代码并用来访问数据库了。还好MyBatis提供了动态SQL,我们可以通过动态SQL,传入表名等信息然组装成建表和操作语句,接下来,我们就通过一个具体的案例来了解一下。
朝雨忆轻尘
2019/06/19
7.3K0
Spring Boot:实现MyBatis动态创建表
spring-boot-plus-v2.0发布了-让天下没有难写的代码
spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot脚手架 前后端分离,专注于后端服务 目标 每个人都可以独立、快速、高效地开发项目! GITHUB | GITEE 官网 springboot.plus V2.0 bilibili 视频介绍 视频内容 主要特性 集成spring boot 常用开发组件集、公共配置、AOP日志等 Maven多模块架构 集成mybatis plus快速dao操作 快速生成后台代码: entity/param/vo/controlle
geekidea
2020/04/13
9990
spring-boot-plus-v2.0发布了-让天下没有难写的代码
Spring Boot:整合Shiro权限框架
Shiro是Apache旗下的一个开源项目,它是一个非常易用的安全框架,提供了包括认证、授权、加密、会话管理等功能,与Spring Security一样属基于权限的安全框架,但是与Spring Security 相比,Shiro使用了比较简单易懂易于使用的授权方式。Shiro属于轻量级框架,相对于Spring Security简单很多,并没有security那么复杂。
朝雨忆轻尘
2019/06/21
1.4K0
Spring Boot:整合Shiro权限框架
快速搭建 SpringCloud 微服务开发环境的脚手架
HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家带来一款基于 SpringCloud2.1 的微服务开发脚手开源项目——SpringCloud
HelloGitHub
2021/05/14
2.5K0
聊聊如何玩转spring-boot-admin
Spring Boot Admin 是一个监控工具,旨在以良好且易于访问的方式可视化 Spring Boot Actuators 提供的信息
lyb-geek
2023/09/05
4340
spring initializr脚手架搭建详解
前段时间,我在「基于start.spring.io,我实现了Java脚手架定制」一文中讲述了敝司的微服务脚手架落地过程中的前世今生,并提到了基于 spring initializr 的搭建了 2.0 版本的脚手架。今天我打算和你分享一下这其中的实现过程与细节,项目已经开源在 Github 上。
杨同学technotes
2022/12/01
1.4K2
35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你!
SpringBoot 是一个非常流行的 Java 框架,它可以帮助开发者快速构建应用程序。他不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置来进一步简化了 Spring 应用的整个搭建和开发过程。
程序员大彬
2024/02/26
25.9K0
35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你!
Spring Boot 配置文件中的花样,看这一篇足矣!
在快速入门一节中,我们轻松的实现了一个简单的RESTful API应用,体验了一下Spring Boot给我们带来的诸多优点,我们用非常少的代码量就成功的实现了一个Web应用,这是传统的Spring应用无法办到的,虽然我们在实现Controller时用到的代码是一样的,但是在配置方面,相信大家也注意到了,在上面的例子中,除了Maven的配置之后,就没有引入任何的配置。
程序猿DD
2019/07/08
9600
精选15款JAVA开源项目脚手架
微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发,项目加入常见的企业级应用所涉及到的技术点,例如 Redis、RabbitMQ 等。
程序员小猿
2021/01/19
5.3K0
精选15款JAVA开源项目脚手架
推荐阅读
相关推荐
spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档