# ruoyi
**Repository Path**: waitxy/ruoyi
## Basic Information
- **Project Name**: ruoyi
- **Description**: 若依管理系统的Spring Boot 2 的版本,保持同步更新。
前端采用 Vue、Element UI。
后端采用 Spring Boot、Sa-Token、Redis & Jwt。
权限认证使用 Sa-Token,支持多终端认证系统。
支持加载动态权限菜单,多方式轻松权限控制。
高效率开发,使用代码生成器可以一键生成前后端代码。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-27
- **Last Updated**: 2026-04-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
RuoYi v3.9.2
基于SpringBoot+Vue前后端分离的Java快速开发框架
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
* 本仓库为若依管理系统的Spring Boot 2 的版本,保持同步更新。
* 前端采用 Vue、Element UI。
* 后端采用 Spring Boot、mybatis-plus、Sa-Token、Redis、Lombok。
* 权限认证使用 Sa-Token,支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制。
* 高效率开发,使用代码生成器可以一键生成前后端代码。
* 全面使用 Lombok 简化代码,提升开发效率。
* 集成 **x-file-storage** 文件存储服务,支持本地存储、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、MinIO、Amazon S3 等多种存储平台。
# 版本分支
若依管理系统 后端项目提供 Spring Boot 2.x / 3.x / 4.x 多版本分支的并行维护。
| 名称 | 说明 | 地址 |
|:---------------|:--------------------------|:----------------------------------------------------|
| master 默认分支 | Spring Boot 4.x (JDK 17+) | https://gitee.com/y_project/若依管理系统 |
| springboot3 分支 | Spring Boot 3.x (JDK 17+) | https://gitee.com/y_project/若依管理系统/tree/springboot3 |
| springboot2 分支 | Spring Boot 2.x (JDK 8+) | https://gitee.com/y_project/若依管理系统/tree/springboot2 |
若依管理系统 前端项目提供 Vue 2.x / 3.x / JavaScript TypeScript 版本均可混用搭配
| 项目名称 | **若依管理系统** | **若依管理系统3** | **若依管理系统3-TypeScript** |
|:-----------|:---------------------------------------------|:-----------------------------------------------------|:--------------------------------------------------------------------------------|
| **前端框架** | Vue 2 | Vue 3 | Vue 3 |
| **脚本语言** | JavaScript | JavaScript | TypeScript |
| **构建工具** | Vue CLI | Vite | Vite |
| **UI 组件库** | Element UI | Element Plus | Element Plus |
| **状态管理** | Vuex | Pinia | Pinia |
| **路由管理** | Vue Router 3 | Vue Router 4 | Vue Router 4 |
| **核心特点** | 1. 技术栈经典稳定
2. 社区资料丰富
3. 当前维护重心已转移 | 1. 现代前端技术栈
2. 开发体验与性能更优
3. 官方主推的活跃版本 | 1. 类型加持,减少沟通成本
2. 开发时有提示,效率更高
3. 多人协作企业级开发项目 |
| **仓库地址** | [若依管理系统](https://gitee.com/y_project/若依管理系统) | [若依管理系统3](https://gitcode.com/yangzongzhuan/若依管理系统3) | [若依管理系统3-TypeScript](https://gitcode.com/yangzongzhuan/若依管理系统3/tree/typescript) |
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
14. 系统接口:根据业务代码自动生成相关的api接口文档。
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析 SQL 找出系统性能瓶颈。
19. 文件存储管理:基于 x-file-storage 实现的多平台文件上传与下载管理,支持动态配置切换存储平台。
## 在线体验
- admin/admin123
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
演示地址:http://vue.ruoyi.vip
文档地址:http://doc.ruoyi.vip
## 文件存储说明
### X File Storage 集成
系统已集成 **x-file-storage** 文件存储服务,提供统一的文件管理接口,支持多种存储平台:
- **本地存储(Local)**:文件存储在服务器本地文件系统
- **阿里云 OSS**:阿里云对象存储服务
- **华为云 OBS**:华为云对象存储服务
- **七牛云 Kodo**:七牛云对象存储服务
- **腾讯云 COS**:腾讯云对象存储服务
- **MinIO**:开源的对象存储系统
- **Amazon S3 / S3 V2**:亚马逊简单存储服务
### 存储配置管理
系统提供两种配置方式:
1. **YAML 配置**(`application.yml`):作为默认配置和保底配置
```yaml
dromara:
x-file-storage:
enable: true
default-platform: local
thumbnail-suffix: ".min.jpg"
local:
- platform: local
enable: true
storage-path: ${ruoyi.profile}/
access-path: /common/upload/
```
2. **数据库配置**(`sys_file_config` 表):支持动态管理和切换存储平台
- 可在系统管理界面中配置不同的存储平台参数
- 支持多配置管理和默认配置切换
- 配置文件信息自动同步到 x-file-storage
### 文件上传接口
**后端接口**:`POST /common/upload`
**前端调用示例**:
```javascript
// 单文件上传
const formData = new FormData();
formData.append('file', file);
axios.post('/common/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
'Authorization': 'Bearer ' + getToken()
}
}).then(res => {
console.log('文件 URL:', res.data.url);
console.log('文件名称:', res.data.fileName);
});
```
**返回参数**:
```json
{
"code": 200,
"url": "http://example.com/files/abc123.jpg",
"fileName": "abc123.jpg",
"originalName": "原文件名.jpg"
}
```
### 文件下载接口
系统提供三种下载方式:
#### 1. 通用文件下载(基于文件 ID)
**后端接口**:`GET /common/download/file/{fileName}`
### 参数拼接方法
在前端调用下载接口时,需要进行 URL 编码和参数拼接:
#### 1. 文件名参数拼接
```javascript
// 原始方法
const fileName = '测试文件.pdf';
const url = baseURL + "/common/download/file/" + encodeURIComponent(fileName);
// 使用 download 插件(推荐)
download.name(fileName, false);
```
## 演示图
## 若依前后端分离交流群
QQ群: [](https://jq.qq.com/?_wv=1027&k=5bVB1og) [](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [](https://jq.qq.com/?_wv=1027&k=51G72yr) [](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [](https://jq.qq.com/?_wv=1027&k=SpyH2875) [](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G6r5KGCaa3pqdbUSXNIgYloyb8e0_L0D&authKey=4w8tF1eGW7%2FedWn%2FHAypQksdrML%2BDHolQSx7094Agm7Luakj9EbfPnSTxSi2T1LQ&noverify=0&group_code=228578329) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=GsOo-OLz53J8y_9TPoO6XXSGNRTgbFxA&authKey=R7Uy%2Feq%2BZsoKNqHvRKhiXpypW7DAogoWapOawUGHokJSBIBIre2%2FoiAZeZBSLuBc&noverify=0&group_code=191164766) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=PmYavuzsOthVqfdAPbo4uAeIbu7Ttjgc&authKey=p52l8%2FXa4PS1JcEmS3VccKSwOPJUZ1ZfQ69MEKzbrooNUljRtlKjvsXf04bxNp3G&noverify=0&group_code=174569686) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=M9y5NjAl44lAL_Vh2crmEehZU_PMU6KS&authKey=ZSDz8hEREWSaPuxQV3gEwqGIaGjfRNnkB4rJjf0IvXhrSUGSGwQFmBA%2Boe8HFxyl&noverify=0&group_code=127358632)
点击按钮入群。