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