RuoYi-Vue 本地部署指南:从克隆到跑通权限管理后台

RuoYi-Vue 本地部署指南:从克隆到跑通权限管理后台

【免费下载链接】RuoYi-Vue:tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue

假设你要给团队搭一个内部后台:要有登录、用户管理、角色权限,还要能在线改代码生成 CRUD 页面,但又不想从零写这些基础功能。RuoYi-Vue(若依)就是干这个的:一套基于 SpringBoot + Spring Security + JWT 的后端,配一套 Vue 前端,把登录认证、菜单权限、代码生成这些"每个后台都绕不开"的功能全部做完了。你跟着这篇做完,本地会有一个可以登录、可以分配权限的权限管理后台,后面开发业务功能时只写自己的表和业务代码即可。

快速开始:从克隆到跑通

这一节解决"环境怎么配、命令怎么敲、怎么确认启动成功"的问题。

环境要求

组件版本说明
JDK17 或更高当前 master 分支基于 Spring Boot 4.x,pom.xml 里<java.version>17</java.version>
MySQL8.0+存储用户、菜单、字典等基础数据
Redis6.x+存登录令牌和验证码,地址默认localhost:6379
Maven3.6+构建后端
Node.js16+前端项目是独立仓库,本地联调时需要

获取项目与构建

克隆仓库到本地:

git clone https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue cd RuoYi-Vue

先建库再导数据。sql/目录下的ry_20260417.sql是系统主数据表,quartz.sql是定时任务表,两个都要导入,缺了后者定时任务模块会报错:

CREATE DATABASE `ry-vue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE `ry-vue`; SOURCE sql/ry_20260417.sql; SOURCE sql/quartz.sql;

注意:application-druid.yml 里默认库名就是ry-vue,建库时保持一致可以少走一步改配置的弯路。

确认 MySQL 和 Redis 都起来了,构建后端:

mvn clean install -Dmaven.test.skip=true

看到BUILD SUCCESS即构建成功。然后启动服务,Windows 双击 ry.bat,Linux/Mac 用:

cd ruoyi-admin/target sh ry.sh start

启动成功的验证标志:终端日志出现 Spring Boot 启动完成信息(Tomcat started on port 8080),接着浏览器访问前端页面(前端仓库另起,见 README.md 的版本分支表),用admin / admin123能登录进系统首页,就算跑通了。

核心能力拆解

这一节挑三个最影响日常开发效率的功能,说明怎么用、代码在哪。

登录认证:JWT 无状态登录

系统登录走 JWT(JSON Web Token,一种服务端签发的令牌,客户端每次请求带上它,服务端验签就知道你是谁,不用每次查会话表)。认证逻辑集中在 ruoyi-framework/src/main/java/com/ruoyi/framework/security/,其中 TokenService.java 负责生成、刷新、校验令牌。

  1. 打开登录页,输入admin / admin123和图形验证码(默认是数学运算题,类型在 application.yml 的captchaType: math配置);
  2. 登录成功后请求头会带Authorization,后续接口靠它识别身份;
  3. 令牌有效期在 application.yml 的token.expireTime(默认 30 分钟)配置,过期会静默续期。

权限管理:细到按钮的 RBAC

权限模型是 RBAC(Role-Based Access Control,基于角色的访问控制:用户挂角色,角色挂菜单/按钮权限)。相关代码在 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java,前端页面在独立的 ruoyi-ui 仓库的views/system/下。

  1. 用 admin 登录后进入「系统管理 → 部门管理」,搭好公司/部门树;
  2. 「角色管理」里新建角色,勾选它能看到的菜单和按钮(比如只给"查看"不给"删除");
  3. 「用户管理」里新建测试账号并分配该角色,另开浏览器登录它,只能看到和角色匹配的菜单——看到按钮消失了,说明权限生效。

代码生成:一张表变一套 CRUD

ruoyi-generator/ 是代码生成模块,能把一张数据库表变成后端 Controller/Service/Mapper 加前端页面,省掉重复的增删改查。核心逻辑在 GenTableServiceImpl.java,模板用 Velocity 渲染(VelocityInitializer.java)。

  1. 把你的业务表导入 MySQL,登录后台进入「系统工具 → 代码生成」,点「导入」选表;
  2. 在生成配置里调整字段类型、是否查询条件、表单控件,然后「预览」;
  3. 点「下载」得到 zip,解压后按提示把 java 代码、vue 页面、sql 各自放入对应位置并执行 sql,重启即可在菜单里看到新模块。

进阶配置:按需修改

这一节覆盖两个几乎人人都要改的配置:服务端口和数据源。

改后端端口

端口被占用是最常见的启动失败原因,直接改配置最干净。编辑 ruoyi-admin/src/main/resources/application.yml:

server: port: 9090 # 原来是 8080

改完重启(sh ry.sh restart),浏览器访问http://localhost:9090/captchaImage能返回验证码图片 JSON,说明端口已切换。注意前端项目里代理的后端地址也要同步改,否则前后端对不上。

换数据库地址与账号

数据源配置在 ruoyi-admin/src/main/resources/application-druid.yml,最小改动就是 master 这三行:

master: url: jdbc:mysql://192.168.1.100:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 你的密码

Redis 地址在 application.yml 的spring.data.redis段,默认localhost:6379无密码,远程部署时记得改。改完重启,用 admin 登录能看到用户列表数据,说明数据源切换成功。

常见问题排查

现象 → 原因 → 解决:

  1. 启动报Access denied for user或Unknown database→ 数据库没建库导数据,或账号密码与 application-druid.yml 不一致 → 按「快速开始」一节建ry-vue库并导入两个 sql,确认用户名密码一致。
  2. 启动卡在 Redis 连接超时报错→ 本机 Redis 没启动或端口不是 6379 → 启动 Redis 服务;远程 Redis 则改 application.yml 中host和password。
  3. 登录一直提示验证码错误→ 验证码存 Redis,Redis 挂了或captchaType配成了char而你按数字算 → 确认 Redis 存活;查看 application.yml 里captchaType是math(数学题)还是char(字符)。
  4. 改完端口或数据源不生效→ 改了配置文件但没重启,或改错了文件(application.yml与application-druid.yml分工不同)→ 重启服务;数据源相关确认改的是 druid 那个文件。
  5. 上传头像/附件报路径不存在→ application.yml 里ruoyi.profile默认是D:/ruoyi/uploadPath,Linux 上没有这个目录 → 改成实际存在的路径,如/home/ruoyi/uploadPath并提前创建。

小结

到这里,你已经在本地跑起来一套带登录认证、角色权限、代码生成的管理后台:数据库和 Redis 配好了,端口、数据源、上传路径这几个高频配置点也知道了在哪里改。下一步可以看看 ruoyi-quartz/ 里的定时任务模块怎么在线配置 cron 任务,或者照着代码生成流程把你自己的第一张业务表变成可操作的页面。更多功能列表和版本分支说明见 README.md,环境细节可参考 doc/若依环境使用手册.docx。有踩坑经验欢迎在评论区聊聊。

【免费下载链接】RuoYi-Vue:tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

数据库迁移遇坑?配置文件错误这样解决

数据库迁移遇坑?配置文件错误这样解决

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:45:08 阅读更多 →
xx科技MHA脚本 arp广播异常_分析

xx科技MHA脚本 arp广播异常_分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:45:08 阅读更多 →
Fort Firewall 完整上手:Windows 程序限速、拦截、查流量的全攻略

Fort Firewall 完整上手:Windows 程序限速、拦截、查流量的全攻略

Fort Firewall 完整上手&#xff1a;Windows 程序限速、拦截、查流量的全攻略 【免费下载链接】fort Fort Firewall for Windows 项目地址: https://gitcode.com/GitHub_Trending/fo/fort Fort Firewall 是一款自带内核驱动的 Windows 防火墙&#xff0c;它不依赖系统防…

2026/10/20 1:45:08 阅读更多 →

最新新闻

基于深度学习的新闻摘要生成:从Encoder-Decoder到注意力机制的实践

基于深度学习的新闻摘要生成:从Encoder-Decoder到注意力机制的实践

又到了一年一度的毕设季&#xff0c;后台好几个读者问我同一个题目&#xff1a;“基于深度学习的新闻摘要生成算法实现”。这个题选得挺聪明&#xff0c;新闻摘要属于文本生成里最有代表性的任务之一&#xff0c;数据好找、效果直观、还能往上堆注意力机制和预训练模型&#xf…

2026/10/20 11:59:57 阅读更多 →
pvbrowser构建指南:Qt 5.15.2定制编译与WebEngine禁用实践

pvbrowser构建指南:Qt 5.15.2定制编译与WebEngine禁用实践

简介&#xff1a;本资源为开源SCADA组态软件pvbrowser的完整安装与开发包&#xff0c;面向工业自动化初学者、QT开发者及中小型项目实施工程师&#xff0c;解决跨平台监控系统快速搭建、设备协议对接与图形化组态开发等核心需求。压缩包为ZIP格式&#xff0c;大小27.65MB&#…

2026/10/20 11:59:57 阅读更多 →
NeRF工业化落地:从玩具级Demo到生产级应用的工程化实践

NeRF工业化落地:从玩具级Demo到生产级应用的工程化实践

1. 先从“玩具级”说起&#xff1a;NeRF到底卡在了哪里任何一个新技术&#xff0c;从论文走到生产线&#xff0c;中间隔着一条叫“工程化”的河。神经辐射场这两年被提起的频率极高&#xff0c;但很多团队真正试过之后的第一反应往往是“效果确实惊艳&#xff0c;可用不起来”。…

2026/10/20 11:59:57 阅读更多 →
MongoDB到HBase迁移实战:Kettle选型与避坑指南

MongoDB到HBase迁移实战:Kettle选型与避坑指南

一个多月前&#xff0c;我们内部的数据平台需要把线上MongoDB里的用户行为明细同步到HBase。下游要做多维统计和特征加工&#xff0c;MongoDB的灵活文档模型开发期确实舒服&#xff0c;但大范围scan和列式存储场景并不合适&#xff1b;HBase能扛住高吞吐的随机读写与批量扫描&a…

2026/10/20 11:59:57 阅读更多 →
Dify完全指南:从零搭建LLM应用开发平台(涵盖RAG、Agent与部署)

Dify完全指南:从零搭建LLM应用开发平台(涵盖RAG、Agent与部署)

这段时间我一直在折腾各种大模型相关的应用&#xff0c;前后用原生代码搭过客服机器人&#xff0c;也试过纯前端接模型接口做演示 Demo&#xff0c;最后发现一个很尴尬的事实&#xff1a;真正耗时间的不是“调用模型”&#xff0c;而是那些跟业务没半毛钱关系的工程问题。比如多…

2026/10/20 11:59:57 阅读更多 →
Pygame性能优化:把静态障碍画进背景并用Mask碰撞检测

Pygame性能优化:把静态障碍画进背景并用Mask碰撞检测

我先说自己踩过的一个坑&#xff1a;做一个小游戏&#xff0c;十几种障碍物各自做成独立精灵对象&#xff0c;视觉上没问题&#xff0c;但数量一多&#xff0c;每帧要遍历、更新、碰撞检测&#xff0c;开销一下上去了。后来改成把所有障碍直接画到背景面上&#xff0c;再配合 m…

2026/10/20 11:58:56 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →