久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

分布式實(shí)戰(zhàn)教程13:ruoyi-vue-pro開(kāi)發(fā)指南

 vnxy001 2023-05-09 發(fā)布于浙江

文章目錄

前言

一,、入門(mén)必讀

(1)后端結(jié)構(gòu)

(2)前端結(jié)構(gòu)

(1)Apifox使用

(2)Knife4j 使用

(3)Swagger 技術(shù)組件

(1)克隆代碼

(2)Apifox 接口工具

(3) 初始化 MySQL

(4)初始化 Redis

(5)啟動(dòng)后端項(xiàng)目

(6)啟動(dòng)前端 Vue2 管理后臺(tái)

(7)啟動(dòng)前端 Vue3 管理后臺(tái)

(8)啟動(dòng)前端 uni-app 管理后臺(tái)

(9)啟動(dòng)前端 uni-app 用戶前臺(tái)

(1)技術(shù)架構(gòu)圖

(2)后端

(3)前端

1,、簡(jiǎn)介

2、項(xiàng)目地址

3,、技術(shù)選型

4、功能列表

5,、內(nèi)置功能

6,、快速啟動(dòng)

7、接口文檔

8,、項(xiàng)目結(jié)構(gòu)

9,、一件改包

10、刪除功能

二,、后端手冊(cè)

1,、新建模塊

2、代碼生成(新增功能)

3,、功能權(quán)限

4,、數(shù)據(jù)權(quán)限

5、用戶體系

6,、三方登錄

7,、OAuth 2.0(SSO 單點(diǎn)登錄)

8、工作流(Flowable)會(huì)簽,、或簽

9,、SaaS 多租戶

10,、異常處理(錯(cuò)誤碼)

11、參數(shù)校驗(yàn)

12,、分頁(yè)實(shí)現(xiàn)

13,、上傳下載

14、Excel 導(dǎo)入導(dǎo)出

15,、系統(tǒng)日志

16,、數(shù)據(jù)庫(kù) MyBatis

17、多數(shù)據(jù)源(讀寫(xiě)分離)

18,、Redis 緩存

19,、本地緩存

20、定時(shí)任務(wù)

21,、異步任務(wù)

22,、消息隊(duì)列

23、配置管理

24,、工具類 Util

25,、單元測(cè)試

26、分布式鎖

27,、冪等性(防重復(fù)提交)

28,、限流熔斷

29、數(shù)據(jù)庫(kù)文檔

30,、報(bào)表設(shè)計(jì)器

31,、短信配置

32、地區(qū) & IP 庫(kù)

前言

本篇講述ruoyi-vue-pro框架

一,、入門(mén)必讀

1,、簡(jiǎn)介

yudao-vue-pro,RuoYi-Vue 全新 Pro 版本,,優(yōu)化重構(gòu)所有功能,。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + UniApp 微信小程序,支持 RBAC 動(dòng)態(tài)權(quán)限,、數(shù)據(jù)權(quán)限,、SaaS 多租戶、Flowable 工作流,、三方登錄,、支付、短信,、商城等功能,。

2、項(xiàng)目地址

(1)Gitee:https:///zhijiantianya/ruoyi-vue-pro.git

(2)Github:https://github.com/YunaiV/ruoyi-vue-pro.git

3,、技術(shù)選型

(1)技術(shù)架構(gòu)圖

在這里插入圖片描述

(2)后端

系統(tǒng)環(huán)境

JDK:Java 開(kāi)發(fā)工具包 >= 1.8.0

Maven:Java 管理與構(gòu)建工具 >= 3.5.0

Nginx:高性能 Web 服務(wù)器

主框架

Spring Boot:應(yīng)用開(kāi)發(fā)框架 2.7.6

Spring MVC:MVC 框架 5.3.24

Spring Security:Spring 安全框架 5.7.5

Hibernate Validator:參數(shù)校驗(yàn)組件 6.2.

存儲(chǔ)層

MySQL:數(shù)據(jù)庫(kù)服務(wù)器 >= 5.7

Druid:JDBC 連接池,、監(jiān)控組件 1.2.14

MyBatis Plus:MyBatis 增強(qiáng)工具包 3.5.2

Dynamic Datasource:動(dòng)態(tài)數(shù)據(jù)源 3.6.0

Redis(opens new window):key-value 數(shù)據(jù)庫(kù) >= 5.0

Redisson(opens new window):Redis 客戶端 3.17.7

中間件

Flowable:工作流引擎 6.7.2

Quartz:任務(wù)調(diào)度組件 2.3.2

Resilience4j:服務(wù)保障組件 1.7.1

系統(tǒng)監(jiān)控

Spring Boot Admin:Spring Boot 監(jiān)控平臺(tái) 2.6.9

SkyWalking:分布式應(yīng)用追蹤系統(tǒng) 8.5.0

單元測(cè)試

JUnit:Java 單元測(cè)試框架 5.8.2

Mockito:Java Mock 框架 4.8.0

其它工具

Knife4j:Swagger 增強(qiáng) UI 實(shí)現(xiàn) 3.0.3

Jackson:JSON 工具庫(kù) 2.13.3

MapStruct:Java Bean 轉(zhuǎn)換 1.5.3.Final

Lombok:消除冗長(zhǎng)的 Java 代碼 1.18.24

(3)前端

管理后臺(tái)(Vue2)

Node:JavaScript 運(yùn)行時(shí)環(huán)境 >= 12

Vue:JavaScript 框架 2.7.14

Vue Element Admin:后臺(tái)前端解決方案 2.5.10

管理后臺(tái)(Vue3)

Vue: vue 框架 3.2.45

Vite:開(kāi)發(fā)與構(gòu)建工具 4.0.1

Element Plus:Element Plus 2.2.26

TypeScript:JavaScript 的超集 4.9.4

pinia:Vue 存儲(chǔ)庫(kù) 替代 vuex5 2.0.28

vueuse:常用工具集 9.6.0

vxe-table:vue 最強(qiáng)表單 4.3.7

vue-i18n:國(guó)際化 9.2.2

vue-router:vue 路由 4.1.6

windicss:下一代工具優(yōu)先的 CSS 框架 3.5.6

iconify:在線圖標(biāo)庫(kù) 3.0.0

wangeditor:富文本編輯器 5.1.23

管理后臺(tái)(uni-app)

uni-app:跨平臺(tái)框架 2.0.0

uni-ui:基于 uni-app 的 UI 框架 1.4.20

用戶 App

Vue:JavaScript 框架 2.6.12

UniApp:小程序,、H5、App 的統(tǒng)一框架

4,、功能列表

芋道,,以開(kāi)發(fā)者為中心,打造中國(guó)第一流的快速開(kāi)發(fā)平臺(tái),,全部開(kāi)源,,個(gè)人與企業(yè)可 100% 免費(fèi)使用。

管理后臺(tái)的 Vue3 版本采用 vue-element-plus-admin,,Vue2 版本采用vue-element-admin

管理后臺(tái)的移動(dòng)端采用 uni-app方案,,一份代碼多終端適配,同時(shí)支持 APP,、小程序,、H5!

后端采用 Spring Boot,、MySQL + MyBatis Plus,、Redis + Redisson

數(shù)據(jù)庫(kù)可使用 MySQL、Oracle,、PostgreSQL,、SQL Server、MariaDB,、國(guó)產(chǎn)達(dá)夢(mèng) DM,、TiDB 等

權(quán)限認(rèn)證使用 Spring Security & Token & Redis,支持多終端,、多種用戶的認(rèn)證系統(tǒng),,支持 SSO 單點(diǎn)登錄

支持加載動(dòng)態(tài)權(quán)限菜單,按鈕級(jí)別權(quán)限控制,,本地緩存提升性能

支持 SaaS 多租戶系統(tǒng),,可自定義每個(gè)租戶的權(quán)限,,提供透明化的多租戶底層封裝

工作流使用 Flowable,,支持動(dòng)態(tài)表單、在線設(shè)計(jì)流程,、會(huì)簽 / 或簽,、多種任務(wù)分配方式

高效率開(kāi)發(fā),使用代碼生成器可以一鍵生成前后端代碼 + 單元測(cè)試 + Swagger 接口文檔 + Validator 參數(shù)校驗(yàn)

集成微信小程序,、微信公眾號(hào),、企業(yè)微信、釘釘?shù)热降顷?,集成支付寶,、微信等支付與退款

集成阿里云,、騰訊云等短信渠道,集成 MinIO,、阿里云,、騰訊云、七牛云等云存儲(chǔ)服務(wù)

集成報(bào)表設(shè)計(jì)器,,支持?jǐn)?shù)據(jù)報(bào)表,、圖形報(bào)表、打印設(shè)計(jì)等

5,、內(nèi)置功能

在這里插入圖片描述

6,、快速啟動(dòng)

(1)克隆代碼

使用 IDEA克隆 https://github.com/YunaiV/ruoyi-vue-pro倉(cāng)庫(kù)的最新代碼,克隆完成后,,耐心等待 Maven 下載完相關(guān)的依賴,。

在這里插入圖片描述

(2)Apifox 接口工具

點(diǎn)擊 Apifox (https://www.)首頁(yè),下載對(duì)應(yīng)的 Apifox 桌面版,。國(guó)內(nèi)很多互聯(lián)網(wǎng)公司,,包括百度、阿里,、騰訊,、字節(jié)跳動(dòng)等等在內(nèi),都在使用 Apifox 作為 API 工具,。

如下圖所示:

在這里插入圖片描述

解壓后,,雙擊進(jìn)行安裝即可。黑色界面,,非??犰拧?/p>

在這里插入圖片描述

(3) 初始化 MySQL

如果你是 PostgreSQL,、Oracle,、SQL Server 等其它數(shù)據(jù)庫(kù),也是可以的,。

項(xiàng)目使用 MySQL 存儲(chǔ)數(shù)據(jù),,所以需要啟動(dòng)一個(gè) MySQL 服務(wù),建議使用 5.7 版本,。

① 創(chuàng)建一個(gè)名字為 ruoyi-vue-pro 數(shù)據(jù)庫(kù),,執(zhí)行對(duì)應(yīng)數(shù)據(jù)庫(kù)類型的 sql目錄下的 SQL 文件,進(jìn)行初始化,。

在這里插入圖片描述

② 默認(rèn)配置下,,MySQL 需要啟動(dòng)在 3306 端口,并且賬號(hào)是 root,,密碼是 123456,。如果不一致,,需要修改 application-local.yaml 配置文件。

在這里插入圖片描述

(4)初始化 Redis

項(xiàng)目使用 Redis 緩存數(shù)據(jù),,所以需要啟動(dòng)一個(gè) Redis 服務(wù),。

一定要使用 5.0 以上的版本,項(xiàng)目使用 Redis Stream 作為消息隊(duì)列,。

不會(huì)安裝的胖友,,可以選擇閱讀下文。Windows 安裝 Redis 指南:http://www./Redis/windows-install Mac 安裝 Redis 指南:http://www./Redis/mac-install

默認(rèn)配置下,,Redis 啟動(dòng)在 6379 端口,,不設(shè)置賬號(hào)密碼。如果不一致,,需要修改 application-local.yaml 配置文件,。

在這里插入圖片描述

(5)啟動(dòng)后端項(xiàng)目

yudao-server是后端項(xiàng)目,提供管理后臺(tái),、用戶 APP 的 RESTful API 接口,。

編譯項(xiàng)目

第一步,使用 IDEA 打開(kāi) Terminal 終端,,在根目錄下直接執(zhí)行 mvn clean install package '-Dmaven.test.skip=true’ 命令,,將項(xiàng)目進(jìn)行初始化的打包,預(yù)計(jì)需要 1 分鐘左右,。成功后,,控制臺(tái)日志如下:JDK 版本的選擇? 如下的 JDK 版本,,是在本地測(cè)試通過(guò)的 JDK 8 版本:盡量保證 >= 1.8.0_144 JDK 11 版本:盡量保證 >= 11.0.14 JDK 17 版本:盡量保證 >= 17.0.2 如果 JDK 版本過(guò)低,,包括 JDK 的小版本過(guò)低,也會(huì) mvn 編譯報(bào)錯(cuò),。 例如說(shuō): “編譯器(1.8.0_40)中出現(xiàn)編譯錯(cuò)誤“,。此處,升級(jí)下 JDK 版本即可,。[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:12 min [INFO] Finished at: 2022-02-12T09:52:38+08:00 [INFO] Final Memory: 250M/2256M [INFO] ------------------------------------------------------------------------

友情提示:只有首次需要執(zhí)行 Maven 命令,,解決基礎(chǔ) pom.xml 文件不存在,導(dǎo)致報(bào) BaseDbUnitTest 類不存在的問(wèn)題,。

啟動(dòng)項(xiàng)目

第二步,,執(zhí)行 YudaoServerApplication類,,進(jìn)行啟動(dòng),。啟動(dòng)還是報(bào)類不存在? 可能是 IDEA 的 bug,,點(diǎn)擊 [File -> Invalidate Caches] 菜單,,清空下緩存,,重啟后在試試看。

在這里插入圖片描述

啟動(dòng)完成后,,使用瀏覽器訪問(wèn) http://127.0.0.1:48080地址,,返回如下 JSON 字符串,說(shuō)明成功,。默認(rèn)配置下,,后端項(xiàng)目啟動(dòng)在 48080 端口。{     "code": 401,     "data": null,     "msg": "賬號(hào)未登錄" }

如果報(bào) “Command line is too long” 錯(cuò)誤,,參考 《Intellij IDEA 運(yùn)行時(shí)報(bào) Command line is too long 解決方法 》 (https://www./Fight/Intellij-IDEA-Indicates-that-Command-Line-is-too-long/?yudao)文章解決,。

在這里插入圖片描述

去除多余模塊

第三步【可選】,由于默認(rèn)引入的 yudao-module--biz 業(yè)務(wù)模塊比較多,,所以啟動(dòng)速度較慢,。如果你在實(shí)際開(kāi)發(fā)中不需要某些模塊,或者項(xiàng)目干脆就不需要它們,,可以通過(guò)修改 yudao-server 的 pom.xml 文件,,去除對(duì)應(yīng)的 yudao-module--biz 依賴。如下圖所示:

在這里插入圖片描述

完成后,,使用 IDEA 刷新 Maven 依賴,,重新執(zhí)行 YudaoServerApplication 進(jìn)行啟動(dòng),速度會(huì)快非常多,。

(6)啟動(dòng)前端 Vue2 管理后臺(tái)

yudao-ui-admin是前端 Vue2 管理后臺(tái)項(xiàng)目,。一共有兩種方式:

① 內(nèi)嵌模式:無(wú)需配置 Node 等前端開(kāi)發(fā)環(huán)境,可以進(jìn)行快速體驗(yàn),。

實(shí)現(xiàn)原理: 每次發(fā)布版本時(shí),,會(huì)將 yudao-admin-ui 編譯成靜態(tài)資源,放置到 yudao-server 中,,使用 Spring Boot 轉(zhuǎn)發(fā)靜態(tài)資源,。 配置方式,可見(jiàn)內(nèi)嵌模式圖片,。

② 完整模式:需要配置前端開(kāi)發(fā)環(huán)境,,適合進(jìn)行前端功能的開(kāi)發(fā)。

胖友可以根據(jù)自己的情況,,選擇合適的方式,。如果你是一個(gè)后端開(kāi)發(fā),對(duì)前端了解相對(duì)較少,,建議先采用方式一,,能夠快速的 run 起來(lái)!

方式一:內(nèi)嵌模式

使用瀏覽器,直接訪問(wèn) http://127.0.0.1:48080/admin-ui地址,,可以看到前端界面,。

在這里插入圖片描述

友情提示:方式一“內(nèi)嵌模式”,每次發(fā)版才會(huì)打包,,所以可能會(huì)碰到問(wèn)題,,這個(gè)時(shí)候請(qǐng)采用方式二“完整模式”!

方式二:完整模型

① 在 yudao-ui-admin 目錄下,,執(zhí)行如下命令,,進(jìn)行啟動(dòng):# 進(jìn)入項(xiàng)目目錄 cd yudao-ui-admin # 安裝 Yarn,提升依賴的安裝速度 npm install --global yarn # 安裝依賴 yarn install # 啟動(dòng)服務(wù) npm run local

在這里插入圖片描述

友情提示:可能胖友本地沒(méi)有安裝 Node.js 的環(huán)境,,導(dǎo)致報(bào)錯(cuò),。可以參考如下文檔安裝:

Windows 安裝 Node.js 指南:http://www./NodeJS/windows-install

Mac 安裝 Node.js 指南:http://www./NodeJS/mac-install

注意,,Node 請(qǐng)使用 14 或者 16 的版本?。?!例如說(shuō),,本地的是 Now using node v14.15.3 (npm v6.14.9) 版本。

② 啟動(dòng)完成后,,瀏覽器會(huì)自動(dòng)打開(kāi) http://localhost:1024地址,,可以看到前端界面。

在這里插入圖片描述

(7)啟動(dòng)前端 Vue3 管理后臺(tái)

yudao-ui-admin-vue3是前端 Vue3 管理后臺(tái)項(xiàng)目,。

① 在 yudao-ui-admin-vue3 目錄下,,執(zhí)行如下命令,進(jìn)行啟動(dòng):# 進(jìn)入項(xiàng)目目錄 cd yudao-ui-admin-vue3 # 安裝 pnpm,,提升依賴的安裝速度 npm config set registry https://registry. npm install -g pnpm # 安裝依賴 pnpm install # 啟動(dòng)服務(wù) npm run dev

② 啟動(dòng)完成后,,瀏覽器會(huì)自動(dòng)打開(kāi) http://localhost:80地址,可以看到前端界面,。

在這里插入圖片描述

友情提示:首次打開(kāi)時(shí),,可能會(huì)比較慢,請(qǐng)耐心等待 1-2 分鐘~

Vue3 版本處于開(kāi)發(fā)階段,,工作流,、支付等功能,還在逐步完善中,,請(qǐng)耐心等待,!目前建議先試用 Vue2 版本。

(8)啟動(dòng)前端 uni-app 管理后臺(tái)

yudao-ui-admin-uniapp是前端 uni-app 管理后臺(tái)項(xiàng)目,。

① 下載 HBuilder (https://www./hbuilderx.html)工具,,并進(jìn)行安裝,。

② 點(diǎn)擊 HBuilder 的 [文件 -> 導(dǎo)入 -> 從本地項(xiàng)目導(dǎo)入…] 菜單,選擇項(xiàng)目的 yudao-ui-admin-uniapp 目錄

③ 執(zhí)行如下命令,,安裝 npm 依賴:# 進(jìn)入項(xiàng)目目錄 cd yudao-ui-admin-uniapp # 安裝 npm 依賴 npm i

④ 點(diǎn)擊 HBuilder 的 [運(yùn)行 -> 運(yùn)行到內(nèi)置瀏覽器] 菜單,使用 H5 的方式運(yùn)行,。成功后,,界面如下圖所示:

在這里插入圖片描述

友情提示:登錄時(shí),滑塊驗(yàn)證碼,,在內(nèi)存瀏覽器可能存在兼容性的問(wèn)題,,此時(shí)使用 Chrome 瀏覽器,并使用“開(kāi)發(fā)者工具”,,設(shè)置為 iPhone 12 Pro 模式,!

(9)啟動(dòng)前端 uni-app 用戶前臺(tái)

yudao-ui-app是前端 uni-app 用戶前臺(tái)項(xiàng)目。

① 下載 HBuilder (https://www./hbuilderx.html)工具,,并進(jìn)行安裝,。

② 點(diǎn)擊 HBuilder 的 [文件 -> 導(dǎo)入 -> 從本地項(xiàng)目導(dǎo)入…] 菜單,選擇項(xiàng)目的 yudao-ui-app 目錄

③ 點(diǎn)擊 HBuilder 的 [運(yùn)行 -> 運(yùn)行到內(nèi)置瀏覽器] 菜單,,使用 H5 的方式運(yùn)行,。成功后,界面如下圖所示:

在這里插入圖片描述

7,、接口文檔

項(xiàng)目使用 Swagger 實(shí)現(xiàn) RESTful API 的接口文檔,,提供兩種解決方案:

【推薦】 Apifox:強(qiáng)大的 API 工具,支持 API 文檔,、API 調(diào)試,、API Mock、API 自動(dòng)化測(cè)試

Knife4j:簡(jiǎn)易的 API 工具,,僅支持 API 文檔,、API 調(diào)試為什么選擇 Swagger 呢? Swagger 通過(guò) Java 注解實(shí)現(xiàn) API 接口文檔的編寫(xiě),。 相比使用 Java 注釋的方式,,注解提供更加規(guī)范的接口定義方式,開(kāi)發(fā)體驗(yàn)更好,。

(1)Apifox使用

我們來(lái)將項(xiàng)目中的 API 接口,,一鍵導(dǎo)入到 Apifox 中,并使用它發(fā)起一次 API 的調(diào)用,。

API 導(dǎo)入

① 先點(diǎn)擊「示例項(xiàng)目」,,再點(diǎn)擊「+」按鈕,選擇「導(dǎo)入」選項(xiàng),。

在這里插入圖片描述

② 先選擇「URL 導(dǎo)入」按鈕,,填寫(xiě) Swagger 數(shù)據(jù) URL 為 http://127.0.0.1:48080/v2/api-docs。

在這里插入圖片描述

③ 先點(diǎn)擊「提交」按鈕,再點(diǎn)擊「確認(rèn)導(dǎo)入」按鈕,,完成 API 接口的導(dǎo)入,。

在這里插入圖片描述

④ 導(dǎo)入完成后,點(diǎn)擊「接口管理」按鈕,,可以查看到 API 列表,。

在這里插入圖片描述

API 調(diào)試

① 先點(diǎn)擊右上角「請(qǐng)選擇環(huán)境」,再點(diǎn)擊「管理環(huán)境」選項(xiàng),,填寫(xiě)測(cè)試環(huán)境的地址為 http://127.0.0.1:48080,,并進(jìn)行保存。

在這里插入圖片描述

② 點(diǎn)擊「管理后臺(tái) —— 認(rèn)證」的「使用賬號(hào)密碼登錄」接口,,查看該 API 接口的定義,。

在這里插入圖片描述

③ 點(diǎn)擊「運(yùn)行」按鈕,填寫(xiě) Headers 的 tenant-id 為 1,,再點(diǎn)擊 Body 的「自動(dòng)生成」按鈕,,最后點(diǎn)擊「發(fā)送」按鈕。

在這里插入圖片描述

(2)Knife4j 使用

瀏覽器訪問(wèn) http://127.0.0.1:48080/doc.html地址,,使用 Knife4j 查看 API 接口文檔,。

在這里插入圖片描述

(3)Swagger 技術(shù)組件

① 在 yudao-spring-boot-starter-web技術(shù)組件的 swagger包,實(shí)現(xiàn)了對(duì) Swagger 的封裝,。

② 如果想要禁用 Swagger 功能,,可通過(guò) yudao.swagger.enable 配置項(xiàng)為 false。一般情況下,,建議 prod 生產(chǎn)環(huán)境進(jìn)行禁用,,避免發(fā)生安全問(wèn)題。

8,、項(xiàng)目結(jié)構(gòu)

在這里插入圖片描述

(1)后端結(jié)構(gòu)

后端采用模塊化的架構(gòu),,按照功能拆分成多個(gè) Maven Module,提升開(kāi)發(fā)與研發(fā)的效率,,帶來(lái)更好的可維護(hù)性,。一共有四類 Maven Module:

yudao-dependencies:Maven 依賴版本管理

該模塊是一個(gè) Maven Bom,只有一個(gè) pom.xml文件,,定義項(xiàng)目中所有 Maven 依賴的版本號(hào),,解決依賴沖突問(wèn)題。

yudao-framework:Java 框架拓展

該模塊是 ruoyi-vue-pro 項(xiàng)目的框架封裝,,其下的每個(gè) Maven Module 都是一個(gè)組件,,分成兩種類型:

① 技術(shù)組件:技術(shù)相關(guān)的組件封裝,例如說(shuō) MyBatis,、Redis 等等,。

yudao-common:定義基礎(chǔ) pojo 類,、枚舉、工具類等

yudao-spring-boot-starter-web:Web 封裝,,提供全局異常,、訪問(wèn)日志等

yudao-spring-boot-starter-security:認(rèn)證授權(quán),基于 Spring Security 實(shí)現(xiàn)

yudao-spring-boot-starter-mybatis:數(shù)據(jù)庫(kù)操作,,基于 MyBatis Plus 實(shí)現(xiàn)

yudao-spring-boot-starter-redis:緩存操作,,基于 Spring Data Redis + Redisson 實(shí)現(xiàn)

yudao-spring-boot-starter-mq :消息隊(duì)列,基于 Redis 實(shí)現(xiàn),,支持集群消費(fèi)和廣播消費(fèi)

yudao-spring-boot-starter-job:定時(shí)任務(wù),,基于 Quartz 實(shí)現(xiàn),,支持集群模式

yudao-spring-boot-starter-flowable:工作流,,基于 Flowable 實(shí)現(xiàn)

yudao-spring-boot-starter-protection:服務(wù)保障,提供冪等,、分布式鎖,、限流、熔斷等功能

yudao-spring-boot-starter-file:文件客戶端,,支持將文件存儲(chǔ)到 S3(MinIO,、阿里云、騰訊云,、七牛云),、本地、FTP,、SFTP,、數(shù)據(jù)庫(kù)等

yudao-spring-boot-starter-excel:Excel 導(dǎo)入導(dǎo)出,基于 EasyExcel 實(shí)現(xiàn)

yudao-spring-boot-starter-monitor:服務(wù)監(jiān)控,,提供鏈路追蹤,、日志服務(wù)、指標(biāo)收集等功能

yudao-spring-boot-starter-captcha:驗(yàn)證碼 Captcha,,提供滑塊驗(yàn)證碼

yudao-spring-boot-starter-test:?jiǎn)卧獪y(cè)試,,基于 Junit + Mockito 實(shí)現(xiàn)

yudao-spring-boot-starter-banner:控制臺(tái) Banner,啟動(dòng)打印各種提示

② 業(yè)務(wù)組件:業(yè)務(wù)相關(guān)的組件封裝,,例如說(shuō)數(shù)據(jù)字典,、操作日志等等。如果是業(yè)務(wù)組件,,名字會(huì)包含 biz 關(guān)鍵字,。

yudao-spring-boot-starter-biz-tenant:SaaS 多租戶

yudao-spring-boot-starter-biz-data-permissionn:數(shù)據(jù)權(quán)限

yudao-spring-boot-starter-biz-dict:數(shù)據(jù)字典

yudao-spring-boot-starter-biz-operatelog:操作日志

yudao-spring-boot-starter-biz-pay:支付客戶端,對(duì)接微信支付,、支付寶等支付平臺(tái)

yudao-spring-boot-starter-biz-sms:短信客戶端,,對(duì)接阿里云,、騰訊云等短信服務(wù)

yudao-spring-boot-starter-biz-social:社交客戶端,對(duì)接微信公眾號(hào),、小程序,、企業(yè)微信、釘釘?shù)热绞跈?quán)平臺(tái)

yudao-spring-boot-starter-biz-weixin:微信客戶端,,對(duì)接微信的公眾號(hào),、開(kāi)放平臺(tái)等

yudao-spring-boot-starter-biz-error-code:全局錯(cuò)誤碼

yudao-spring-boot-starter-biz-ip:地區(qū) & IP 庫(kù)

每個(gè)組件,包含兩部分:

core 包:組件的核心封裝,,拓展相關(guān)的功能,。

config 包:組件的 Spring Boot 自動(dòng)配置。

在這里插入圖片描述

yudao-module-xxx:XXX 功能的 Module 模塊

該模塊是 XXX 功能的 Module 模塊,,目前內(nèi)置了 6 個(gè)模塊,。

yudao-module-system:系統(tǒng)功能 【必須】

yudao-module-infra:基礎(chǔ)設(shè)施 【必須】

yudao-module-member:會(huì)員中心 【非必須】

yudao-module-bpm:工作流程 【非必須】

yudao-module-pay:支付系統(tǒng) 【非必須】

yudao-module-visualization:數(shù)據(jù)報(bào)表 【非必須】

每個(gè)模塊包含兩個(gè) Maven Module,分別是:

yudao-module-xxx-api:提供給其它模塊的 API 定義

yudao-module-xxx-biz:模塊的功能的具體實(shí)現(xiàn)

例如說(shuō),,yudao-module-infra 想要訪問(wèn) yudao-module-system 的用戶,、部門(mén)等數(shù)據(jù),需要引入 yudao-module-system-api 子模塊,。示例如下:

在這里插入圖片描述

疑問(wèn):為什么設(shè)計(jì) yudao-module-xxx-api模塊呢,?

明確需要提供給其它模塊的 API 定義,方便未來(lái)遷移微服務(wù)架構(gòu),。

模塊之間可能會(huì)存在相互引用的情況,,雖然說(shuō)從系統(tǒng)設(shè)計(jì)上要盡量避免,但是有時(shí)在快速迭代的情況下,,可能會(huì)出現(xiàn),。此時(shí),通過(guò)只引用對(duì)方模塊的 API 子模塊,,解決相互引用導(dǎo)致 Maven 無(wú)法打包的問(wèn)題,。

總結(jié)來(lái)說(shuō),每個(gè)模塊采用三層架構(gòu) + 非嚴(yán)格分層,,如下圖所示:

在這里插入圖片描述

yudao-server:管理后臺(tái) + 用戶 App 的服務(wù)端

該模塊是后端 Server 的主項(xiàng)目,,通過(guò)引入需要 yudao-module-xxx 業(yè)務(wù)模塊,從而實(shí)現(xiàn)提供 RESTful API 給 yudao-ui-admin,、yudao-ui-user 等前端項(xiàng)目,。本質(zhì)上來(lái)說(shuō),它就是個(gè)空殼(容器),!如下圖所示:

在這里插入圖片描述

(2)前端結(jié)構(gòu)

前端一共有四個(gè)項(xiàng)目,,分別是:

yudao-ui-admin:管理后臺(tái)的 Vue2 前端項(xiàng)目

yudao-ui-admin-vue3:管理后臺(tái)的 Vue3 前端項(xiàng)目

yudao-ui-admin-uniapp:管理后臺(tái)的 uni-app 多端項(xiàng)目

yudao-ui-app:用戶 APP 的 UI 界面

yudao-admin-ui├── bin                        // 執(zhí)行腳本 ├── build                      // 構(gòu)建相關(guān)   ├── public                     // 公共文件 │   ├── favicon.ico            // favicon 圖標(biāo) │   └── index.html             // html 模板 │   └── robots.txt             // 反爬蟲(chóng) ├── src                        // 源代碼 │   ├── api                    // 所有請(qǐng)求【重要】 │   ├── assets                 // 主題、字體等靜態(tài)資源 │   ├── components             // 全局公用組件 │   ├── directive              // 全局指令 │   ├── icons                  // 圖標(biāo) │   ├── layout                 // 布局 │   ├── plugins                // 插件 │   ├── router                 // 路由 │   ├── store                  // 全局 store 管理 │   ├── utils                  // 全局公用方法 │   ├── views                  // 視圖【重要】 │   ├── App.vue                // 入口頁(yè)面 │   ├── main.js                // 入口 JS,,加載組件,、初始化等 │   ├── permission.js          // 權(quán)限管理 │   └── settings.js            // 系統(tǒng)配置 ├── .editorconfig              // 編碼格式 ├── .env.development           // 開(kāi)發(fā)環(huán)境配置 ├── .env.production            // 生產(chǎn)環(huán)境配置 ├── .env.staging               // 測(cè)試環(huán)境配置 ├── .eslintignore              // 忽略語(yǔ)法檢查 ├── .eslintrc.js               // eslint 配置項(xiàng) ├── .gitignore                 // git 忽略項(xiàng) ├── babel.config.js            // babel.config.js ├── package.json               // package.json └── vue.config.js              // vue.config.js

9,、一件改包

項(xiàng)目提供了 ProjectReactor程序,支持一鍵改包,,包括 Maven 的 groupId,、artifactId、Java 的根 package,、前端的 title,、數(shù)據(jù)庫(kù)的 SQL 配置、應(yīng)用的 application.yaml 配置文件等等,。效果如下圖所示:

在這里插入圖片描述

操作步驟:

① 第一步,,使用 IDEA克隆 https://github.com/YunaiV/ruoyi-vue-pro倉(cāng)庫(kù)的最新代碼。

② 第二步,,打開(kāi) ProjectReactor 類,,填寫(xiě) groupIdNew、artifactIdNew,、packageNameNew,、titleNew 屬性,。如下圖所示:

在這里插入圖片描述

③ 第三步,,執(zhí)行 ProjectReactor 的 #main(String[] args) 方法,它會(huì)基于當(dāng)前項(xiàng)目,,復(fù)制一個(gè)新項(xiàng)目到 projectBaseDirNew 目錄,,并進(jìn)行相關(guān)的改名邏輯。

13:02:36.765 [main] INFO cn.iocoder.yudao.ProjectReactor - [main][開(kāi)始獲得需要重寫(xiě)的文件]

13:02:41.530 [main] INFO cn.iocoder.yudao.ProjectReactor - [main][需要重寫(xiě)的文件數(shù)量:2825,,預(yù)計(jì)需要 5-10 秒]

13:02:45.799 [main] INFO cn.iocoder.yudao.ProjectReactor - [main][重寫(xiě)完成]

④ 第四步,,使用 IDEA 打開(kāi) projectBaseDirNew 目錄,進(jìn)行項(xiàng)目的啟動(dòng),。注意,,一定要重新執(zhí)行 SQL 的導(dǎo)入!??!

10、刪除功能

項(xiàng)目?jī)?nèi)置功能較多,,會(huì)存在一些你可能用不到的功能,。一般的情況下,建議通過(guò)設(shè)置該功能對(duì)應(yīng)的菜單為【禁用】,,實(shí)現(xiàn)功能的“刪除”,。如下圖所示:

在這里插入圖片描述

后續(xù),如果你又需要使用到該功能,只需要設(shè)置該功能對(duì)應(yīng)的菜單為【開(kāi)啟】即可,。

二,、后端手冊(cè)

1,、新建模塊

https://doc./module-new/

2,、代碼生成(新增功能)

https://doc./new-feature/

3,、功能權(quán)限

https://doc./resource-permission/

4,、數(shù)據(jù)權(quán)限

https://doc./data-permission/

5,、用戶體系

https://doc./user-center/

6,、三方登錄

https://doc./social-user/

7,、OAuth 2.0(SSO 單點(diǎn)登錄)

https://doc./oauth2/

8、工作流(Flowable)會(huì)簽,、或簽

https://doc./bpm/

9,、SaaS 多租戶

https://doc./saas-tenant/

10、異常處理(錯(cuò)誤碼)

https://doc./exception/

11,、參數(shù)校驗(yàn)

https://doc./validator/

12,、分頁(yè)實(shí)現(xiàn)

https://doc./page-feature/

13、上傳下載

https://doc./file/

14,、Excel 導(dǎo)入導(dǎo)出

https://doc./excel-import-and-export/

15,、系統(tǒng)日志

https://doc./system-log/

16、數(shù)據(jù)庫(kù) MyBatis

https://doc./mybatis/

17,、多數(shù)據(jù)源(讀寫(xiě)分離)

https://doc./dynamic-datasource/

18,、Redis 緩存

https://doc./redis-cache/

19、本地緩存

https://doc./local-cache/

20,、定時(shí)任務(wù)

https://doc./job/

21,、異步任務(wù)

https://doc./async-task/

22、消息隊(duì)列

https://doc./message-queue/

23,、配置管理

https://doc./config-center/

24,、工具類 Util

https://doc./util/

25、單元測(cè)試

https://doc./unit-test/

26,、分布式鎖

https://doc./distributed-lock/

27,、冪等性(防重復(fù)提交)

https://doc./idempotent/

28、限流熔斷

https://doc./server-protection/

29,、數(shù)據(jù)庫(kù)文檔

https://doc./db-doc/

30,、報(bào)表設(shè)計(jì)器

https://doc./report/

31、短信配置

https://doc./sms/

32,、地區(qū) & IP 庫(kù)

https://doc./area-and-ip/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多