## 运行环境准备
> 具体安装问题自行百度
- [JDK 8+](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
- [MySQL 5.7+](https://dev.mysql.com/downloads/installer)
- [Redis](https://github.com/tporadowski/redis/releases)
- [Maven](https://github.com/Exrick/xmall/blob/master/study/Maven.md)
- [Elasticsearch 7.10.0](https://www.elastic.co/cn/downloads/elasticsearch)(根据配置可选,默认不需要)
## 开发环境
- [IDEA](https://www.jetbrains.com/idea/download/#section=windows)
- 开发插件
- [Lombok](https://jingyan.baidu.com/article/0a52e3f4e53ca1bf63ed725c.html):高效开发必备【必须】
- [阿里JAVA开发规约插件](https://github.com/alibaba/p3c):统一开发规范必需【建议】
- [JRebel](https://github.com/Exrick/xmall/blob/master/study/JRebel.md):秒级热更新神器必备 【推荐】
## 导入SQl文件
- MySQL数据库新建`xboot`数据库,导入xboot.sql文件
> 若启动项目后报错找不到Quartz相关表时请设置数据库忽略大小写或重新导入quartz.sql
## 配置文件修改
- [application.yml](https://github.com/Exrick/x-boot/blob/master/src/main/resources/application.yml) 中已有详细注释,主要修改数据库以及Redis配置
- 配置文件可使用Jasypt加密,可到`cn.exrick.xboot.common`包中找到 JasyptUtil 工具类生成加解密结果(非必需,可明文)
- 若运行报错:`...you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine`
因配置文件加解密所需,解决方案一:配置先全部直接使用明文。方案二:请更新JDK为对应版本的最新版,或去Oracle官网下载相应的JCE包
> 开源版本所有配置只需在这里修改,完整版部分配置可在“系统配置”菜单中动态修改
## 使用的第三方服务
- [七牛云对象存储](https://www.qiniu.com):免费10G文件存储,文件上传所需
- 使用对象存储产品创建一个对象存储空间,点击右上角头像-秘钥管理可获取秘钥,将相关配置填入配置文件即可
- [腾讯位置服务](https://lbs.qq.com/webservice_v1/guide-ip.html):免费IP信息接口
- 登陆后进入[控制台](https://lbs.qq.com/dev/console/key/manage) ,创建key填入配置文件即可
<img src="https://ooo.0o0.ooo/2019/11/08/4kfbQBHdoA2YeqF.png" width=500/>
<img src="https://ooo.0o0.ooo/2019/11/08/yjoKnNPftT2JUmO.png" width=500/>
## 编译器中启动
- 使用IDEA导入该后端Maven项目
- 进入pom.xml文件后右上角点击Load Maven Changes按钮下载依赖包
![](https://img.kancloud.cn/59/b0/59b06c0ef85772cc736dda497e748899_2108x478.png)
- 编译器建议勾选自动构建编译
<img src="https://ooo.0o0.ooo/2019/04/11/5caead69a35ce.png" width="600px"/>
- 普通运行,单体版默认已添加SpringBoot官方工具Devtools热更新依赖,修改代码后自动重启整个项目
- 右键 `XbootApplication.java` 运行或使用编译器菜单栏三角形运行按钮Run即可
- JRebel开发神器启动运行,修改代码后秒级热更新【推荐】
- 左下角勾选上项目模块后,会生成rebel.xml配置文件,可在其中修改监听编译文件路径,一旦发现编译文件变化即触发热更新
<img src="https://ooo.0o0.ooo/2019/04/11/5caeb81c7e989.png" width="600px" />
- 使用JRebel插件启动即可
<img src="https://ooo.0o0.ooo/2019/04/11/5caeb9143d8b2.png" />
- 若修改代码后热更新未生效,请手动点击编译按钮或编译器中配置更新策略
<img src="https://ooo.0o0.ooo/2020/04/27/mLtDBlNpuAkh3sn.png" width="600px"/>
## 无需编译器启动
- 在有`pom.xml`文件即根目下执行命令 `mvn spring-boot:run`即可
## 访问测试
- 默认端口8888 访问接口文档`http://localhost:8888/doc.html`说明启动成功
- 管理员账密 admin 123456
- 前言&版本说明
- 概念
- XBoot 是什么?
- 系统架构
- 主要使用的开源组件
- 角色控制访问权限(RBAC)
- 用户手册
- 系统配置
- 工作流使用配置
- 定时任务调度
- 智能助手客服机器人
- 项目本地运行
- 后端运行
- 前端运行
- 项目结构说明
- 附:使用Oracle等数据库
- 模块化版本
- 后端开发指南
- 基本开发指南
- 前后端数据交互标准
- 工具类及数据权限
- 代码生成器-30秒搞定CRUD
- 增删改查CRUD
- 日志类型注解扩展
- 逻辑删除
- 各验证码使用及配置
- 接口文档使用及认证
- 前端开发指南
- 基本开发指南
- 主题/Logo/首页等配置
- 路由菜单配置
- 多语言国际化配置
- 自定义图标icon
- 工具类及数据获取
- 其他说明
- 完整版开发指南
- 前端Vue代码生成器
- Activiti工作流
- 单点登录配置
- 智能助手/客服机器人
- MinIO对象存储服务搭建
- 第三方社交账号配置
- 短信开发/站内消息/邮件
- Vaptcha验证码
- 禁用词使用
- 前端移除CDN
- 其他说明
- 开放平台及单点登录
- 开放平台使用指南
- Web接入开发流程
- 单点登录开发指南
- 微信小程序端开发指南
- 项目导入与开发必读
- 业务组件
- 产品组件(小)
- 产品组件(大)
- 优惠券组件
- 评论列表组件
- 红包组件
- 推荐商品组件
- 页面设计
- 商品详情页及SKU设计
- 通用方法工具类说明
- 开发经验与踩坑分享
- Uniapp端开发指南
- APP后端开发指南
- Uniapp前端开发指南
- 开发新功能示例
- 后端开发新模块
- 前端开发新页面
- 测试
- SonarQube代码质量管理
- TestNG单元测试
- ExtentReports测试报告
- Selenuim自动化Web测试
- Appuim自动化App测试
- JMeter压测性能测试
- 部署
- Spring Boot配置
- 快速部署
- 后端部署
- 前端部署
- 前端部署优化
- Docker容器化部署
- 服务器配置
- 持续集成
- GitLab
- GitLab CI
- XBoot 脚本参考
- Jenkins
- Jenkins安装
- XBoot CI参考
- DevOps环境搭建
- 组件安装列表
- 开发设计规范
- 分支管理
- 数据库设计规范
- Redis使用规范
- Java基础开发规范
- Rest API规范
- 项目结构规范
- 前端开发规范
- 前端设计规范
- 项目搭建分享
- 后端相关
- SpringBoot 2.x区别总结
- Spring Security整合JWT
- Spring Security动态权限管理
- Spring Boot 2.x整合Quartz
- Spring Boot 2.x整合Websocket
- Spring Boot 2.x整合Activiti工作流以及模型设计器
- Spring Boot + Security全局跨域配置
- 前端相关
- axios请求封装 统一异常处理
- 动态路由菜单加载
- 多维度控制权限至按钮显示
- 发送消息图标红点实时显示
- 动态组件单页操作
- XBoot助你【告别996】
- 业务开发踩坑
- 你会用开发神器IDEA吗
- Lombok你知道多少
- 你还在手动校验参数吗
- 你真的会用JPA吗
- Lamda表达式
- Stream流式API
- 告别资源关闭
- Optional避免null
- 谷歌Guava工具包
- 线程池
- 其他小经验技巧
- 更新日志及步骤
- 常见问题