RuoYi-Vue-Plus:重寫經(jīng)典,打造多租戶后臺管理系統(tǒng)的巔峰之作
引言
在軟件開發(fā)領(lǐng)域,后臺管理系統(tǒng)(Backend Management System, BMS)是企業(yè)信息化建設(shè)不可或缺的一部分。RuoYi作為一個經(jīng)典的后臺管理系統(tǒng)框架,已經(jīng)在業(yè)界獲得了廣泛的應(yīng)用和認(rèn)可。然而,隨著技術(shù)的不斷進(jìn)步和業(yè)務(wù)需求的日益復(fù)雜,RuoYi在分布式集群與多租戶場景下的局限性逐漸顯現(xiàn)。為此,我們推出了RuoYi-Vue-Plus,一個重寫RuoYi、針對分布式集群與多租戶場景全方位升級的全新框架。
一、平臺簡介
1.1 項目背景
RuoYi-Vue-Plus是基于RuoYi框架的全面重寫,針對分布式集群與多租戶場景進(jìn)行了深度優(yōu)化。項目代碼和文檔均開源免費,并允許商用,只需在項目中保留開源協(xié)議文件。本項目的初衷是分享技術(shù)、促進(jìn)學(xué)習(xí),并希望廣大開發(fā)者能夠從中受益。
1.2 技術(shù)選型
RuoYi-Vue-Plus在前端采用了Vue3 + TypeScript + ElementPlus,后端則采用了Spring Boot框架,并集成了眾多前沿技術(shù),如Sa-Token、Mybatis-Plus、Flowable、SpringDoc等。這些技術(shù)的選擇旨在提升系統(tǒng)的性能、可擴(kuò)展性和安全性。
1.3 軟件架構(gòu)圖
二、與RuoYi的功能差異
2.1 前端項目
- RuoYi-Vue-Plus:采用Vue3 + TypeScript + ElementPlus重寫,提高了代碼的可讀性和可維護(hù)性。
- RuoYi:基于Vue2/Vue3 + JavaScript,雖然也支持Vue3,但整體代碼質(zhì)量和技術(shù)選型相對落后。
2.2 后端項目結(jié)構(gòu)
- RuoYi-Vue-Plus:采用插件化 + 擴(kuò)展包形式,結(jié)構(gòu)解耦,易于擴(kuò)展。
- RuoYi:模塊相互注入,耦合嚴(yán)重,難以擴(kuò)展。
2.3 后端代碼風(fēng)格
- RuoYi-Vue-Plus:嚴(yán)格遵守Alibaba規(guī)范,代碼格式化統(tǒng)一,易于閱讀和維護(hù)。
- RuoYi:代碼書寫風(fēng)格多樣,閱讀障礙大。
2.4 Web容器
- RuoYi-Vue-Plus:采用Undertow,基于XNIO的高性能容器,性能優(yōu)于Tomcat。
- RuoYi:采用Tomcat,性能一般。
2.5 權(quán)限認(rèn)證
- RuoYi-Vue-Plus:采用Sa-Token和Jwt,功能齊全,低耦合,高擴(kuò)展。
- RuoYi:采用Spring Security,配置繁瑣,擴(kuò)展性差。
2.6 權(quán)限注解
- RuoYi-Vue-Plus:支持多種校驗方式,如登錄校驗、角色校驗、權(quán)限校驗等,支持復(fù)雜表達(dá)式。
- RuoYi:僅支持簡單的權(quán)限匹配。
2.7 三方鑒權(quán)
- RuoYi-Vue-Plus:支持微信、釘釘?shù)葦?shù)十種第三方認(rèn)證。
- RuoYi:無第三方認(rèn)證支持。
2.8 數(shù)據(jù)庫支持
- RuoYi-Vue-Plus:原生支持MySQL、Oracle、PostgreSQL、SQLServer,支持異構(gòu)切換。
- RuoYi:僅支持MySQL和Oracle,不支持異構(gòu)切換。
2.9 緩存數(shù)據(jù)庫
- RuoYi-Vue-Plus:支持Redis 5-7,支持分布式限流、分布式隊列等高級功能。
- RuoYi:僅支持簡單的get/set操作。
2.10 ORM框架
- RuoYi-Vue-Plus:采用Mybatis-Plus,幾乎不用寫SQL,功能強大。
- RuoYi:采用Mybatis,需要手寫SQL。
2.11 數(shù)據(jù)分頁
- RuoYi-Vue-Plus:支持多種方式傳參和復(fù)雜排序。
- RuoYi:僅支持單查詢分頁,功能擴(kuò)展性差。
2.12 數(shù)據(jù)權(quán)限
- RuoYi-Vue-Plus:采用Mybatis-Plus插件,無感式過濾,支持多種自定義。
- RuoYi:基于注解+AOP實現(xiàn),生成的SQL兼容性差。
2.13 數(shù)據(jù)脫敏與加解密
- RuoYi-Vue-Plus:支持?jǐn)?shù)據(jù)脫敏和多種加解密策略。
- RuoYi:無數(shù)據(jù)脫敏和加解密功能。
2.14 接口傳輸加密
- RuoYi-Vue-Plus:采用動態(tài)AES+RSA加密,安全性高。
- RuoYi:無接口傳輸加密功能。
2.15 其他功能
- RuoYi-Vue-Plus:還支持?jǐn)?shù)據(jù)翻譯、多數(shù)據(jù)源框架、多數(shù)據(jù)源事務(wù)、分布式冪等、分布式鎖、分布式任務(wù)調(diào)度、文件存儲與云存儲、短信與郵件服務(wù)、接口文檔生成、校驗框架、Excel框架、工作流支持、工具類框架、監(jiān)控框架、鏈路追蹤、代碼生成器等功能。
- RuoYi:在上述功能方面存在不同程度的缺失。
三、與RuoYi的業(yè)務(wù)差異
3.1 租戶管理
- RuoYi-Vue-Plus:支持租戶套餐、過期時間、用戶數(shù)量、企業(yè)信息等管理。
- RuoYi:無租戶管理功能。
3.2 租戶套餐管理
- RuoYi-Vue-Plus:支持系統(tǒng)內(nèi)租戶所能使用的套餐管理。
- RuoYi:無租戶套餐管理功能。
3.3 客戶端管理
- RuoYi-Vue-Plus:支持動態(tài)授權(quán)登錄方式和控制token時效。
- RuoYi:無客戶端管理功能。
3.4 用戶、部門、崗位管理
- RuoYi-Vue-Plus:支持用戶、部門、崗位的管理配置。
- RuoYi:支持用戶、部門、崗位的管理配置,但功能相對簡單。
3.5 菜單、角色、字典、參數(shù)管理
- RuoYi-Vue-Plus:支持菜單、角色、字典、參數(shù)的管理。
- RuoYi:支持菜單、角色、字典、參數(shù)的管理,但功能相對簡單。
3.6 通知公告與日志管理
- RuoYi-Vue-Plus:支持系統(tǒng)通知公告信息發(fā)布維護(hù)和多種日志記錄查詢。
- RuoYi:支持通知公告和日志管理,但功能相對簡單。
3.7 文件管理
- RuoYi-Vue-Plus:支持文件展示、上傳、下載、刪除等管理。
- RuoYi:無文件管理功能。
3.8 定時任務(wù)與代碼生成
- RuoYi-Vue-Plus:支持定時任務(wù)管理和多數(shù)據(jù)源前后端代碼生成。
- RuoYi:僅支持簡單的任務(wù)與日志管理,代碼生成僅支持單數(shù)據(jù)源。
3.9 系統(tǒng)接口與服務(wù)監(jiān)控
- RuoYi-Vue-Plus:支持根據(jù)業(yè)務(wù)代碼自動生成API接口文檔和全面的服務(wù)監(jiān)控。
- RuoYi:支持接口文檔生成,但服務(wù)監(jiān)控功能有限。
四、總結(jié)與展望
RuoYi-Vue-Plus作為RuoYi框架的全面重寫和升級,在功能、性能、可擴(kuò)展性和安全性等方面均取得了顯著的提升。通過集成前沿技術(shù)和優(yōu)化項目結(jié)構(gòu),我們打造了一個適用于分布式集群與多租戶場景的全新后臺管理系統(tǒng)框架。未來,我們將繼續(xù)完善和優(yōu)化RuoYi-Vue-Plus,以滿足更多企業(yè)和開發(fā)者的需求。
項目地址:
https://gitee.com/dromara/RuoYi-Vue-Plus