在当今快速迭代的软件开发领域,寻找一个既能满足企业级应用需求,又能提升开发效率的框架至关重要。ruoyi-vue-pro作为一款基于Vue.js和Spring Boot的开源项目,正逐渐成为开发者社区的热门选择。本文将深入探讨这一项目的核心特性、技术架构及其实际应用价值。
项目概览
ruoyi-vue-pro是ruoyi-vue的全新升级版本,优化重构所有功能,基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + UniApp 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城等功能。旨在为开发者提供一个快速构建企业级后台管理系统的解决方案。作为开源项目,它采用比 Apache 2.0 更宽松的 MIT License 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。
项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
技术架构
Java 后端:master 分支为 JDK 8 + Spring Boot 2.7,master-jdk17 分支为 JDK 17/21 + Spring Boot 3.2
管理后台的电脑端:Vue3 提供 element-plus、vben(ant-design-vue) 两个版本,Vue2 提供 element-ui 版本
管理后台的移动端:采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson
数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
消息队列可使用 Event、Redis、RabbitMQ、Kafka、RocketMQ 等
权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录
支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能
支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装
工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
高效率开发,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表
实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏

核心功能

系统功能
功能 | 描述 |
|---|
用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 |
在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 |
角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 |
菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 |
部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
岗位管理 | 配置系统用户所属担任职务 |
租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 |
站内信 | 系统内的消息通知,提供站内信模版、站内信消息 |
操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
登录日志 | 系统登录日志记录查询,包含登录异常 |
错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
通知公告 | 系统通知公告信息发布维护 |
敏感词 | 配置系统敏感词,支持标签分组 |
应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
基础设施
功能 | 描述 |
|---|
代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 |
系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 |
WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 |
Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 |
Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
日志中心 | 接入 SkyWalking 组件,实现日志中心 |
服务保障 | 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景 |
日志服务 | 轻量级日志中心,查看远程服务器的日志 |
单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
工作流程
基于 Flowable 构建,标配仿钉钉/飞书 + BPMN 双设计器,可支持信创(国产)数据库,满足中国特色流程操作:
功能列表 | 功能描述 |
|---|
SIMPLE 设计器 | 仿钉钉/飞书设计器,支持拖拽搭建表单流程,10 分钟快速完成审批流程配置 |
BPMN 设计器 | 基于 BPMN 标准开发,适配复杂业务场景,满足多层级审批及流程自动化需求 |
会签 | 同一个审批节点设置多个人(如 A、B、C 三人,三人会同时收到待办任务),需全部同意之后,审批才可到下一审批节点 |
或签 | 同一个审批节点设置多个人,任意一个人处理后,就能进入下一个节点 |
依次审批 | (顺序会签)同一个审批节点设置多个人(如 A、B、C 三人),三人按顺序依次收到待办,即 A 先审批,A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点 |
抄送 | 将审批结果通知给抄送人,同一个审批默认排重,不重复抄送给同一人 |
驳回 | (退回)将审批重置发送给某节点,重新审批。可驳回至发起人、上一节点、任意节点 |
转办 | A 转给其 B 审批,B 审批后,进入下一节点 |
委派 | A 转给其 B 审批,B 审批后,转给 A,A 继续审批后进入下一节点 |
加签 | 允许当前审批人根据需要,自行增加当前节点的审批人,支持向前、向后加签 |
减签 | (取消加签)在当前审批人操作之前,减少审批人 |
撤销 | (取消流程)流程发起人,可以对流程进行撤销处理 |
终止 | 系统管理员,在任意节点终止流程实例 |
表单权限 | 支持拖拉拽配置表单,每个审批节点可配置只读、编辑、隐藏权限 |
超时审批 | 配置超时审批时间,超时后自动触发审批通过、不通过、驳回等操作 |
自动提醒 | 配置提醒时间,到达时间后自动触发短信、邮箱、站内信等通知提醒,支持自定义重复提醒频次 |
父子流程 | 主流程设置子流程节点,子流程节点会自动触发子流程。子流程结束后,主流程才会执行(继续往下下执行),支持同步子流程、异步子流程 |
条件分支 | (排它分支)用于在流程中实现决策,即根据条件选择一个分支执行 |
并行分支 | 允许将流程分成多条分支,不进行条件判断,所有分支都会执行 |
包容分支 | (条件分支 + 并行分支的结合体)允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支 |
路由分支 | 根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行) |
触发节点 | 执行到该节点,触发 HTTP 请求、HTTP 回调、更新数据、删除数据等 |
延迟节点 | 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等 |
拓展设置 | 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等 |
实际应用场景
快速开发场景
ruoyi-vue-pro特别适合需要快速搭建后台管理系统的场景。通过代码生成器,开发者可以在几分钟内完成基础CRUD功能的开发,将精力集中在业务逻辑实现上。
企业级应用场景
对于需要复杂权限控制、多数据源支持的企业级应用,ruoyi-vue-pro提供了完善的解决方案。其模块化设计使得系统可以轻松扩展,满足不断变化的业务需求。
多租户SaaS场景
项目内置的多租户支持使其成为SaaS应用开发的理想选择。开发者可以快速构建支持多租户的系统,实现数据隔离和租户管理。
结语
在众多开源项目中,ruoyi--vue-pro脱颖而出,主要得益于:
完整的企业级功能集
现代化的技术栈
活跃的社区支持
持续的项目更新
良好的文档和示例
对于希望快速构建企业级应用、提升开发效率的团队,ruoyi--vue-pro无疑是一个值得深入研究和使用的优秀开源项目。通过合理利用其提供的功能和模块,开发者可以显著缩短开发周期,将更多精力投入到业务创新和用户体验优化上。
随着项目的持续演进,ruoyi--vue-pro有望成为企业级应用开发的标准参考架构之一,为开发者提供更多可能性。