# XBoot 使用的開源組件
XBoot 完全基于開源產品打造。以下我們從兩個方面來闡述 XBoot 使用了哪些開源產品和工具:
## 應用框架使用的開源工具集
XBoot 的應用系統架構由四個不同的層組成,從應用程序代碼到所需運行平臺和連接服務。這些應用程序和服務通過一致的調度和監督進行管理。

### 應用前端
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工具包
- 線程池
- 其他小經驗技巧
- 更新日志及步驟
- 常見問題