聊聊 ruoyi-vue ,ruoyi-vue-plus ,ruoyi-vue-pro
筆者在知乎、Github 上搜索快速開發框架時 ,很多的話題都繞不開若依 RuoYi 。
開源世界以 RuoYi 取名的單體框架有三個不同的項目,分別是:ruoyi-vue 、ruoyi-vue-plus 、ruoyi-vue-pro 。
這三個項目,筆者把它們的源碼基本都過了一次,接下來分享下學習心得。
1.ruoyi-vue
圖片
RuoYi 作為國內流行的 Java 快速開發框架,衍生出了多個版本,主要分為 RuoYi(經典單體版)、RuoYi-Vue(前后端分離單體版)、RuoYi-Cloud(微服務版)。
RuoYi-Vue 基于經典技術組合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),內置模塊如:部門管理、角色用戶、菜單及按鈕授權、數據權限、系統參數、日志管理、通知公告、代碼生成等。
圖片
對于后臺管理系統來講,RuoYi-Vue 實現的功能還是很全的,基本做到了開箱即用。
同時,RuoYi-Vue 的文檔非常細致 ,且全部公開。
圖片
接下來,我們看下源碼:
圖片
筆者認為 RuoYi-Vue 的技術棧非常樸實,代碼實現很簡潔,沒有用各種奇技淫巧,對于中小公司來講,非常利于二次開發。
知乎上的反饋也是不錯,不乏溢美之詞。
網友 1:
先堅決表明態度,ruoyi牛逼不接受反駁。
所有噴ruoyi垃圾的人,我在這里等著和你們正面對線。
若依用的技術都是行業主流技術,而且代碼規范的,框架設計很簡潔,沒有過度封裝的東西,簡單易上手。java是所有語言里水最深的,java程序員水平良莠不齊,但是若依這個框架真正做到了適合大眾,有能力的開發可以自己往里加東西,框架的簡潔不過度封裝支持你往里各種塞技術,沒能力的就湊合著用基礎版,基礎的東西都有絕對夠用了。并且現在的若依越來越為大眾所熟知,生態越來越多樣,作者一直開源不管是文檔還是源碼。請問這么一個框架,難道不能稱之為程序員的福音么???
網友 2:
沒有若依之前,小型的IT企業、開發團隊、個人,想要獨立完成一個企業項目,是一個個非常困難的故事。若依的出現,把項目的準入門檻,一下拉低了
很多人力非常有限的小團體,基本上可以站在若依的肩膀上,也能做獨立的企業項目。若依幫這些小團隊,渡過最艱難的起步期。可以這么說,若依是唯一能幫人搞定事的人。而其他呢,除了能打嘴炮,都是然并卵用的人。
網友 3:
有他之前,企業想開發個后臺項目起步打底得 50 萬,之后復制粘貼成本遞減。若依把這個起步門檻降低到 5000,所以一票小軟件開發公司沒生意,死了。
2.ruoyi-vue-plus
RuoYi-Vue-Plus 是開源組織 Dromara 旗下一款多租戶權限管理系統。
圖片
相比 RuoYi-Vue , RuoYi-Vue-Plus 的功能更加完善。
圖片
RuoYi-Vue-Plus 增強了多租戶、文件存儲、短信服務、脫敏、Redis 框架、SSE 等增強功能。
項目的文檔也非常全,核心功能基本都有對應的文檔。
圖片
最后,我們看下項目源碼:
圖片
相比 ruoyi-vue , RuoYi-Vue-Plus 的模塊分布更加清晰了。
- ruoyi-admin :主入口模塊,依賴所有功能模塊,提供統一啟動入口。
- ruoyi-common: 公共依賴庫,包含工具類、通用配置、基礎實體等,被所有模塊依賴。
- ruoyi-modules: 功能模塊 , 系統核心、工作流、業務定時任務、代碼生成器 。
- ruoyi-extend:擴展模塊
筆者覺得 RuoYi-Vue-Plus 項目還是很優秀的,比如前后端加密通訊、文件存儲、WebSocket/SSE 推送模塊這些都非常有學習價值。
3.ruoyi-vue-pro
ruoyi-vue-pro 也是一款后臺快速開發平臺,Github 上 star 數非常高。
圖片
模塊設計角度來看,它還內置了很多的功能,比如商城、ERP 、三方支付、三方登錄、AI 大模型等等。
圖片
框架本身提供了支持不同的 JDK 和 SpringBoot 的版本。
版本 | JDK 8 + Spring Boot 2.7 | JDK 17/21 + Spring Boot 3.2 |
【完整版】ruoyi-vue-pro | master 分支 | master-jdk17 分支 |
【精簡版】yudao-boot-mini | master 分支 | master-jdk17 分支 |
前端支持三種技術選型 :
- Vue3 + element-plus
- Vue3 + vben(ant-design-vue)
- Vue2 + element-ui
從整體來看,ruoyi-vue-pro 的作者還是花費了很多心血的。
但筆者在整合中還是遇到了不少問題,核心問題是:內置模塊太多。
- 開源項目最好可以精簡一些,這樣可以簡化開發者的接入成本。
- ruoyi-vue-pro 新增了 API 模塊 ,該模塊是理論上起到了橋接作用。不過在單體應用中,就顯得復雜了,會增加開發者心智負擔。
ruoyi-vue-pro 設計里有不少亮點,比如分布式鎖、Redisson 接入、限流等等。
筆者新增了 Token 模塊、Id 生成器兩個模塊,精簡部分模塊:
圖片
系統界面:
圖片
4.總結
評估維度 | RuoYi-Vue | RuoYi-Vue-Plus | RuoYi-Vue-Pro |
核心優勢 | 極簡開箱即用 | 多租戶/功能增強 | 全生態功能預制 |
二次開發 | ?????(源碼簡潔) | ???☆(需理解模塊化) | ??(需深度裁剪) |
成本效益 | 人力/時間成本最低 | 中等投入高回報 | (中等偏上)需評估功能利用率 |
筆者認為:RuoYi-Vue 的架構和分層非常適合新手入門,文檔詳細,社區活躍,最重要的是作者在持續維護。