笔者在知乎、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. C#实现文件的压缩和解压缩

    原文链接:https://www.cnblogs.com/sunyaling/archive/2009/04/13/1434602.html 在C#中实现文件的压缩和解压缩,需要使用第三方的组建完成. ...

  2. GridControl 给选中的行添加边框显示

    实现方式,通过自定义 RowControl 的样式实现. 参考:https://supportcenter.devexpress.com/ticket/list?searchString=RowCel ...

  3. linux的使用(2)

    1,覆盖 > cat 文件名a>文件名b:将文档a覆盖文档b 2,追加 >> cat 文档名a>>文档名b:将文档a追加到文档b后 追加错误 上图所示:尽量使用字母 ...

  4. 如何在 CentOS 7 linux上安装和使用 FFmpeg

    SSH首选FinalShell 1.下载解压 wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz tar -zxvf ffmpeg-5.1.ta ...

  5. SpringBoot - [09] Restful风格接口方法&参数

    GetMapping.PostMapping.DeleteMapping.PutMapping是SpringBoot中常用的HTTP请求映射注解,它们分别对应HTTP协议中的GET.POST.DELE ...

  6. docker下安装Harbor

    安装docker-compose # 安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.18 ...

  7. 机器学习 | 强化学习(6) | 策略梯度方法(Policy Gradient Method)

    6-策略梯度方法(Policy Gradient Method) 策略梯度概论(Introduction) 基于策略(Policy-Based) 的强化学习 对于上一节课(价值函数拟合)中采用参数\( ...

  8. 红日复现为什么失败之struct-046流量分析加msf特征总结

    struts2漏洞 一.指纹识别 s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名 部署在根目录下,工程名可 ...

  9. boot3+JDK17+spring-cloud-gateway:4.0.0+spring-cloud:2022.0.0.0+Nacos2.2.1配置动态路由的网关

    项目依赖 配置 # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html # Nacos认证信息 spring.cloud.nacos.config ...

  10. PostgreSQL下载

    官方下载地址: https://www.postgresql.org/download/pgAdmin4客户端工具下载地址:https://www.pgadmin.org/download/pgadm ...