引言
在软件开发领域,后台管理系统(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