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