笔者在知乎、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 的架构和分层非常适合新手入门,文档详细,社区活跃,最重要的是作者在持续维护。

因此,它是笔者心中快速开发平台的王者。

聊聊 ruoyi-vue ,ruoyi-vue-plus ,ruoyi-vue-pro 谁才是真正的王者的更多相关文章

  1. 实例PK(Vue服务端渲染 VS Vue浏览器端渲染)

    Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司 ...

  2. Vue服务端渲染和Vue浏览器端渲染的性能对比

    Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司 ...

  3. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  4. 【Vue笔记】-- 详解vue生命周期

    针对于Vue的生命周期进行详细的说明,方面加深对各个方法的引用. 引言: 前几天重新回顾vue官网时,看到vue的生命周期,想着自己用vue开发了快一年了,就总结总结vue知识,再次加深自己对vue的 ...

  5. Vue项目中使用基于Vue.js的移动组件库cube-ui

    cube-ui 是滴滴公司的技术团队基于 Vue.js 实现的精致移动端组件库.很赞,基本场景是够用了,感谢开源!感谢默默奉献的你们. 刚爬完坑,就来总结啦!!希望对需要的朋友有小小的帮助. (一)创 ...

  6. vue学习目录 vue初识 this指向问题 vue组件传值 过滤器 钩子函数 路由 全家桶 脚手架 vuecli element-ui axios bus

    vue学习目录 vue学习目录 Vue学习一之vue初识 Vue学习二之vue结合项目简单使用.this指向问题 Vue学习三之vue组件 Vue学习四之过滤器.钩子函数.路由.全家桶等 Vue学习之 ...

  7. Vue系列之 => webpack结合vue使用

    安装 npm i vue -S ,  在html页面中放一个容器绑定到el上. 修改webpack.config.js , 在与entry , output节点平级加上 resolve 节点. res ...

  8. 从零开始学 Web 之 Vue.js(六)Vue的组件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令

    自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...

  10. [vue三部曲]第一部:vue脚手架的搭建和目录资源介绍,超详细!

    第一步 node环境安装 1.1 如果本机没有安装node运行环境,请下载node 安装包进行安装1.2 如果本机已经安装node的运行换,请更新至最新的node 版本下载地址:https://nod ...

随机推荐

  1. 百万架构师第四十一课:RabbitMq:可靠性投递和实践经验|JavaGuide

    来源:https://javaguide.net RabbitMQ 2-可靠性投递与生产实践 可靠性投递 ​ 首先需要明确,效率与可靠性是无法兼得的,如果要保证每一个环节都成功,势必会对消息的收发效率 ...

  2. [WC2006] 水管局长 题解

    最大值最小的路径肯定在最小生成树上,考虑用 \(LCT\) 维护最小生成树,只需要维护长度最长的边即可实现.由于 \(LCT\) 维护最小生成树不支持删边,所以采用倒序加边的方式处理. 时间复杂度 \ ...

  3. 使用idea合并 dev分支合并到test分支

    这里展示将dev分支合并到test分支首先切换到test分支 按下图所示操作

  4. 启动U盘制作-小白保姆式超详细刷机教程

    疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 一.准备工作 需要用到的工具: 1.一台Window ...

  5. MySQL - [17] Oracle、SQLServer、MySQL数据类型对比

    题记部分 一.数据类型对比 对应关系 (1)整数类型 Oracle的NUMBER(*,0) 对应 SQL Server的INT 和 MySQL的INT Oracle的BIGINT 可能需要映射到SQL ...

  6. 设计原则&模式:原型模式 Prototype(创建型)

    定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.也就是说,这种不通过new关键字来产生一个对象,而是通过对象复制(Java中的clone或反序列化)来实现的模式,就叫做原型模式. ...

  7. 【MATLAB习题】四杆机构的运动学参数求解

    1.问题描述 2. 推导过程 3. matlab代码 最新版代码 直接采用求微分的方式得到角度,角速度等数值解,速度慢,但是代码少,容易看懂(矩阵看起来真难受). 以前做的一个博客文章用的是矩阵运算求 ...

  8. WSL2 - Ubuntu 22.04使用记录

    1 安装 搭配Windows Terminal使用为佳,在微软商店可下载: 然后依照官网描述即可. 命令行中运行wsl --install即可.不过由于想自行指定发行版,于是: wsl --list ...

  9. 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)

    1.问题描述: 使用华为内置的MapComponent, 发现显示不出来.查看日志, MapRender底层有报错. 解决方案: 麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分. 1.一般没有 ...

  10. AR 智能生态鱼缸组态远控平台 | 图扑软件

    在工业 4.0 和物联网技术的推动下,万物互联正重塑行业管理模式.组态远控系统作为高效管控的核心,打破了设备孤立状态,实现数据实时交互.以智能生态鱼缸为例,图扑软件低代码数字孪生平台通过集成前沿技术, ...