# boot-master
**Repository Path**: bootstrap2table/boot_master
## Basic Information
- **Project Name**: boot-master
- **Description**: boot-master基于SpringBoot2.2.0版本,结合项目实用的技术点。采用技术:RediSQL , RedisSearch , Redisson,SolrCloud,RedisCluster,ElasticJob,XxlJob, Druid,Mybatis,Freemarker等,帮助您急速上手使用SpringBoot。【QQ群:759111321,作者QQ:1335157415】
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://bootstrap2table.gitee.io
- **GVP Project**: No
## Statistics
- **Stars**: 576
- **Forks**: 224
- **Created**: 2018-05-17
- **Last Updated**: 2025-06-07
## Categories & Tags
**Categories**: spring-boot-ext
**Tags**: None
## README
# boot-master
#### 项目介绍
boot-master基于SpringBoot2.2.0版本,整合项目中常用技术,帮助您快速上手使用SpringBoot,欢迎大家提意见,您的宝贵意见,是我们进步的动力。
最新代码请查看[boot-win](https://gitee.com/bootstrap2table/boot_master/tree/feature/boot-win) 本地部署: [离线版本](http://114.67.207.106:8081/nexus/content/groups/public/boot-win/boot-win/1.0.0.RELEASE/boot-win-1.0.0.RELEASE.jar) [进阶版本](https://gitee.com/bootstrap2table/platform)
#### 在线演示
[HAdmin演示](http://121.4.140.37:88/hAdmin/index.html) [WIN10演示](http://121.4.140.37) [代码生成](http://106.12.105.21:8020) [XXL_JOB](http://114.67.207.106:8484/xxl-job-admin) [RAP文档](http://114.67.207.106:8888) [SOLR](http://114.67.207.106:8888/solr)
#### 极速入门
[中台系统](https://gitee.com/bootstrap2table/platform) [电商系统](https://gitee.com/bootstrap2table/micro) [入门配置](https://gitee.com/bootstrap2table/boot_master/wikis/welcome) [分布式事务](https://gitee.com/bootstrap2table/boot_master/tree/feature/jta/druid) [SpringCloud](https://gitee.com/bootstrap2table/spring-cloud) [Dubbo](https://gitee.com/bootstrap2table/api-master) [AlibabaSpringCloud](https://gitee.com/bootstrap2table/nacos-seata-demo)
#### 技术选型
● 系统核心框架:SpringBoot
● 定时任务调度:ElasticJob+Zookeeper
● 数据持久框架:MyBatis
● 数据库连接池:Alibaba Druid
● 系统监控插件:JavaMelody+Druid
● 系统缓存框架:Redis-cluster
● 系统前端框架:Freemaker+AdminLte
● 搜索引擎框架:Solr/SolrCloud+RedisSearch
● 分布式线程锁:Redisson
● 分布式限流器:Redisson
● 系统消息队列:ActiveMq
● 安全授权框架:JwtToken+AES
● 接口文档工具:SWAGGER2+swagger2markup
● 全文检索工具:RedisSearch
● 日志查询处理:RediSQL
● 代码分析插件:Sonar
● 项目文件服务:Gitea
● 项目文档工具:Swagger+RAP
● 项目管理工具:禅道
#### **项目特点**
> * 提供在线代码生成工具,您只需要创建表的脚本,在线执行,然后在线生成就可完成controller,service,dao,mapper,entity,html全部功能开发。
> * 利用NGINX分离了static目录下js,css,img等文件,提高页面响应速度。
> * 利用REDISSON实现多个服务之间的远程调用,发送方发送指令成功,接收方确认会处理。
> * 用户操作日志写入REDIS,通过SWAGGER在线文档直接查看REDIS日志。
> * http协议在线访问swaggerJSON地址,可以直接生成swagger离线makdown和html文档。
> * 配置App模块,针对相同接口重复提交,直接拒绝访问(针对多读情况,可手动关闭限制)。
> * 配置接口限流器,接口端直接拒绝超过允许数量的请求,减轻服务器端在高并发环境下的压力。
> * 配置坦克大战小游戏,让您在学习之余可以愉快的放松休息。
> * 配套[代码生成工具](https://github.com/apple987/AutoCode):快速生成前后端代码,极大的提高开发效率。
> * 引入[ApacheCommons](https://gitee.com/bootstrap2table/boot_master/blob/master/src/test/java/com/qdone/DemoApacheCommonsTest.java)工具包,大幅简化开发中的io,file,collection,jexl等处理过程 。
> * 引入APP模块,根据token作为登录令牌,支持token自动续期,极大的方便了APP接口开发。
> * 引入[HibernateValidator](https://gitee.com/bootstrap2table/boot_master/blob/master/src/main/java/com/qdone/module/controller/TestController.java)校验框架,轻松实现后端校验。
> * 引入druid,javaMelody监控系统各项指标,分析系统瓶颈。
> * 前端采用freemarker模板化引擎,页面采用bootstrap-table灵活强大的表格插件。
> * 前端使用layui弹出层框架,极大的简化了弹出层的开发过程。
> * 前端采用JqueryValidate插件,快捷方便进行数据验证。
> * 后端配置swagger在线文档,极大的降低前后端项目成员的沟通成本,快速同步文档。
> * 配置druid,fastjson,cors,xss,redis-cluster等组件服务。
> * 配置全局异常处理,通用日志打印,pagehelper分页。
> * 配置redisson集群模式,使用分布式锁,保证并发的数据一致性。
> * 配置全局errorPage和welcomeFile完善全局异常处理,优化异常处理代码。
> * 配置devtools热部署,针对page目录下的css,js,html页面资源修改之后,项目不需要重新启动。
> * 配置elastic-job定时器,强悍的分布式定时任务配置。
> * 配置fileupload(默认配置最大100MB),下载文件,生成二维码,二维码打印,mail发邮件等功能。
> * 配置https安全协议,提高系统安全性,配置log4j日志,系统出现异常自动发送邮件。
> * 配置poi和csv简单导出excel功能点,poi目前是多sheet智能导出。
> * 前端使用vkbeautify插件,页面格式化json,xml,css,sql数据显示。
> * 配置[activeMq](https://gitee.com/bootstrap2table/boot_master/blob/master/src/test/java/com/qdone/DemoApplicationTests.java)支持同时发送队列和主题消息。
> * 配置[solr和solrCloud](https://gitee.com/bootstrap2table/boot_master/blob/master/src/main/java/com/qdone/module/app/SolrDataController.java)支持分词搜索查询。
> * 配置LOG4JDBC格式化打印Mybatis执行sql日志,快捷定位脚本错误
#### **项目结构**
```
boot-master
│
├─doc 项目SQL语句
│
├─common 公共配置
│
├─framework 框架配置
│
├─modules 功能模块
│ ├─app API接口模块(APP调用)
│ ├─controller 系统模块
│ ├─mapper mybatis的sql文件
│ ├─model 数据库实体类
│ └─service 业务逻辑层
│
├─StartUpApplication 项目启动类
│
├──resources
│ ├─page 页面资源
│ │ ├─static 静态资源
│ │ │ ├─css css样式
│ │ │ ├─js js文件
│ │ │ ├─images 图片文件
│ │ │ ├─adminLTE 模板组件
│ │ │ └─plugins 前端插件
│ │ │
│ │ └─view 前端页面
│ │ ├─error 系统错误页
│ │ ├─inc 公共资源页面
│ │ └─其他 系统功能页面
│ │
│ ├─application.properties 配置文件
│ ├─banner.txt 自定义启动图标
│ ├─mybatis_config.xml mybatis配置项
│ └─secure.jks ssl安全证书
```
#### **软件环境**
- JDK1.8
- MySQL5.5+
- Maven3.0+
#### **环境配置:**
- 1.项目依赖redis-cluster集群,zookeeper,activeMq,solr工具,目前工具运行环境(win7 x64)。
- 2.doc目录里面有初始化sql,运行项目前,请先创建mysql(编码UTF-8)。
- 3.工具地址:https://pan.baidu.com/s/1Bm7udGJc40xEENFgnJjsIw
- 4.SolrCloud: https://pan.baidu.com/s/1RbC4zS8izz9Ge8wuIdplXQ
- 5.配置文档:https://gitee.com/bootstrap2table/boot_master/wikis/welcome
#### **启动说明:**
- 1.创建mysql数据库isec实例,运行doc目录里面的sql文件。
- 2.启动redis集群(127.0.0.1:6379~6384,密码:qdone)。
- 3.启动activeMq(默认单机版)。
- 4.启动solr(默认单机版)。
- 5.启动zookeeper(默认单机版本2181)。
- 6.运行StartUpApplication启动项目,浏览器访问http://localhost
- 7.Sonar代码分析,请在eclipse或者idea工具:
maven命令:sonar:sonar -Dsonar.host.url=http://ip:port -Dsonar.login=X -Dsonar.password=X -Dsonar.scm.provider=git
#### **注意事项:**
- 1.目前启动2台实例,发送队列消息时,存在一个队列对应多个消费者,某一消费者可能读取不到队列消息的情况。
- 2.代码配置有通用和特定队列的两种监听器,当向相同队列发送消息时,专门监听该队列的监听器会处理此消息。
- 3.开源分布式定时任务架构有很多,常用Elastic-job,XXL_JOB,light-task-scheduler。
- 4.REDISSON可以做远程调用,发布订阅功能,可以实现类似MQ的轻量级功能。
- 5.使用XXL-JOB时,需要在自己的业务方法里处理完毕之后,需要将handler异常抛出,便于admin捕获处理。
- 6.系统风格有[AdminLTE](https://gitee.com/bootstrap2table/boot_master/tree/feature/boot-simple)和[Win10](https://gitee.com/bootstrap2table/boot_master/tree/feature/boot-win)两种,鉴于服务器原因,此处只是展示[Win10](http://106.12.24.186:9090)页面。
#### **懒人部署:**
- 1.下载 [swagger.jar](http://106.12.24.186:8081/nexus/content/groups/public/com/qdone/swagger/1.0.0/swagger-1.0.0.jar)
- 2.百度网盘[swagger.jar](https://pan.baidu.com/s/1yGzkIe4PG0-sAdUT0UCQ1w),提取码:jq7s
- 2.本地进入下载目录,执行:java -jar swagger-1.0.0.jar
- 3.浏览器访问:http://localhost:9090/main
#### **友情链接:**
- GitHub:https://github.com/apple987/boot_walk
- mycat版本: https://gitee.com/bootstrap2table/boot_master/tree/feature/mycat
- sharding-jdbc版本: https://gitee.com/bootstrap2table/boot-sharding
- jtaDruid版本: https://gitee.com/bootstrap2table/boot_master/tree/feature/jta/druid
- 代码生成: https://github.com/apple987/AutoCode
- 阿里GTS: https://github.com/seata/seata
#### **问题反馈:**
- 意见反馈:https://gitee.com/bootstrap2table/boot_master/issues
- 作者姓名:付为地
- 作者QQ: 1335157415
- 作者邮箱: m15171479289@163.com
- 加入QQ群:

### 项目截图
**项目启动效果图:**

**Https跳转效果图:**

**登陆页面效果图:**

**欢迎页面效果图:**

**学生管理效果图:**

**接口文档效果图:**

**登录接口效果图:**

**获取用户效果图:**

**邮件异常效果图:**

**发送消息效果图:**

**接收消息效果图:**

**职员列表效果图:**

**添加职员效果图:**

**验证失败效果图:**

**AlibabaDurid效果图:**

**JavaMelody效果图:**

**生成二维码效果图:**

**打印二维码效果图:**

**Solr操作效果图:**

**文本上传效果图:**

**上传出错效果图:**

**限流生效效果图:**
