# XBoot 使用的开源组件
XBoot 完全基于开源产品打造。以下我们从两个方面来阐述 XBoot 使用了哪些开源产品和工具:
## 应用框架使用的开源工具集
XBoot 的应用系统架构由四个不同的层组成,从应用程序代码到所需运行平台和连接服务。这些应用程序和服务通过一致的调度和监督进行管理。
![](https://img.kancloud.cn/af/78/af78bcc88a1f7555b593597c2256d94d_1772x1000.png)
### 应用前端
XBoot 前端使用 Vue 和 Vuex。
核心组件有:
* **Vue**:Vue 是一个用于构建用户界面的渐进式 JavaScript 框架。
* **Vuex**:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。
### 后端
XBoot 的后端使用 Spring Boot 作为开发核心脚手架。
核心组件有:
* **Spring Boot**:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
### 数据服务层
XBoot 采用 MySQL 作为关系型数据存储库,Redis 作为缓存库。
核心组件有:
* **MySQL**:Mysql 是最流行的开源关系型数据库管理系统。
* **Redis**:Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
### 运行环境
XBoot 运行在 Docker 上,当然也可直接运行于Linux或Windows平台。
核心组件有:
* **Docker**:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
### 编码
XBoot 采用主流的 Git 和 Github、Gitlab 作为代码的管理和托管工具,同时使用 Maven 作为项目代码的组织和管理工具。
核心组件有:
* **Git**:Git 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
* **Gitlab**:GitLab 是一个基于 Git 的仓库管理程序,也是一个方便软件开发的强大完整应用。
* **Maven**:Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具
### 构建
XBoot 在构建阶段,采用 Gitlab CI 作为持续集成工具,Harbor 作为镜像的存放库,同时 XBoot 融合了 Gitlab CI 和 Harbor 这两个工具,以实现自动化和版本的控制。
* **Gitlab CI**:Gitlab CI 是 Gitlab 提供的一个持续集成工具。主要通过.gitlab-ci.yml 配置文件管理 CI 过程。
* **Harbor**:Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目。
### 测试
XBoot 采用多个代码检查和测试工具,其中,TestNG 作为后端 Java 代码的测试工具;Selenium 作为前端测试的工具。
核心组件有:
* **TestNG**:TestNG 是一个测试 Java 应用程序的新框架,相比于JUnit更加强大、创新、可扩展、灵活。
* **Selenium**:Selenium 是一套完整的 web 应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。
### 部署和运营
XBoot 融合使用 Docker、Kubernetes 和 Harbor 作为部署工具。
核心组件有:
* **Docker**:Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
* **Kubernetes**:Kubernetes 是一个开源平台,用于跨主机群集自动部署,扩展和操作应用程序容器,提供以容器为中心的基础架构。
* **Harbor**:Harbor 是一个企业级的 Docker Registry,可以实现 images 的私有存储和日志统计权限控制等功能,并支持创建多项目。
### 监控
XBoot 的监控包括了全生命周期的状态、反馈、监控等,帮助开发和运营管理更好的提升效能。
核心组件有:
- **Spring Boot Actuator**:Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
- **Spring Boot Admin**:Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI。
- **Apache Druid**:Apache Druid是一个高性能的实时分析数据库,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。
- 前言&版本说明
- 概念
- 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工具包
- 线程池
- 其他小经验技巧
- 更新日志及步骤
- 常见问题