Everyone can develop projects independently, quickly and efficiently!



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目录

项目架构

项目环境

中间件 版本 备注
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, 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

/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

快速开始

快速开始

详细文档

https://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 Admin Instances

Spring Boot Admin Statistics

Spring Boot Admin Log

spring-boot-plus Swagger文档

spring-boot-plus Java Api Docs

spring-boot-plus 视频

spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架.的更多相关文章

  1. Spring Boot 系列(一)快速入门

    简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  2. Spring Boot(一):快速开始

    Spring Boot(一):快速开始 本系列文章旨在使用最小依赖.最简单配置,帮助初学者快速掌握Spring Boot各组件使用,达到快速入门的目的.全部文章所使用示例代码均同步Github仓库和G ...

  3. 快速创建你的第一个Spring Boot项目

    1. 创建工程 打开idea,利用Spring Boot搭建一个web工程,切身体会一下Spring Boot所带来的魅力!看看SpringBoot是如何快速搭建一个web项目. New-->P ...

  4. 读懂这些spring boot的核心注解,快速配置完成项目搭建

    在spring boot中,摒弃了spring以往项目中大量繁琐的配置,遵循约定大于配置的原则,通过自身默认配置,极大的降低了项目搭建的复杂度.同样在spring boot中,大量注解的使用,使得代码 ...

  5. Spring Boot 成长之路(一) 快速上手

    1.创建工程 利用IntelliJ IDEA新建一个Spring Boot项目的Web工程 2.查看初始化的spring boot项目 工程建好之后会出现如下的目录结构: 值得注意的第一件事是,整个项 ...

  6. 【译】快速高效学习Java编程在线资源Top 20

    想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...

  7. Spring Boot的学习之路(02):和你一起阅读Spring Boot官网

    官网是我们学习的第一手资料,我们不能忽视它.却往往因为是英文版的,我们选择了逃避它,打开了又关闭. 我们平常开发学习中,很少去官网上看.也许学完以后,我们连官网长什么样子,都不是很清楚.所以,我们在开 ...

  8. 快速高效学习Java编程在线资源Top 20(转载)

    想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...

  9. Spring Boot从入门到精通(一)搭建第一个Spring Boot程序

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

随机推荐

  1. Scrapy项目 - 源码工程 - 实现豆瓣 Top250 电影信息爬取的爬虫设计

    一.项目目录结构 spiders文件夹内包含doubanSpider.py文件,对于项目的构建以及结构逻辑,详见环境搭建篇. 二.项目源码 1.doubanSpider.py # -*- coding ...

  2. java使用POI操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  3. 详解Java多线程锁之synchronized

    synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法. synchronized的四种使用方式 修饰代码块:被修饰的代码块称为同步语句块,其作用的范围是大括号{}括 ...

  4. IDEA 学习笔记之 Python项目开发

    Python项目开发: 下载Python: https://www.python.org/downloads/release/python-363/ 安装Python: 配置环境变量(path): C ...

  5. 阿里云Centos操作Mysql

    1.  CentOS7 yum方式安装MySQL5.7 2.Centos下mysql导入sql 3.Centos设置远程 4.CentOS下mysql数据库常用命令总结 5.centos出现“Fire ...

  6. 设计模式----行为型模式之观察者模式(Observer Pattern)

    下面是阅读<Head First设计模式>的笔记. 观察者模式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. JDK API内置机制 ...

  7. 小游戏:200行python代码手写2048

    #-*- coding: utf-8 -*- import curses from random import randrange, choice from collections import de ...

  8. ACM-图论-同余最短路

    https://www.cnblogs.com/31415926535x/p/11692422.html 一种没见过的处理模型,,记录一下,,主要是用来处理一个多元一次方程的解的数量的问题,,数据量小 ...

  9. bugku 一个普通的压缩包

    压缩包打不开,用winhex打开压缩包,发现头文件是zip的,将后缀改为zip,成功解压. 打开发现还是个压缩包,而且打不开,提示secret.png损坏,使用winhex打开. 将a8 3c 7a ...

  10. Poco XMLconfiguration 解析xml配置文件

    环境: Centos7 GCC: 7.3.0 准备需要读取的xml文件: <config> <prop1>1.23</prop1> <prop2>2.3 ...