Files
yidaima/RuoYi-Vue/README.md
2026-05-21 19:35:00 +08:00

9.1 KiB
Raw Blame History

RuoYi-Vue 代码生成平台

基于 RuoYi-Vue v3.8.8 二次开发的前后端分离后台管理系统。项目保留若依的用户、角色、菜单、日志、监控、定时任务、代码生成等基础能力,并在 ruoyi-generatorruoyi-ui/src/views/generator 下扩展了项目级代码生成平台能力。

当前仓库更适合按“后台基础框架 + 可配置代码生成平台”来理解:先用若依提供认证、权限、菜单、数据权限、日志和基础运维能力,再围绕项目、数据源、模板、模块、代码片段和项目结构生成完整代码包。

技术栈

层级 技术
后端 Java 8、Spring Boot 2.5.15、Spring Framework 5.3.39、Spring Security 5.7.12
数据访问 MyBatis、PageHelper、Druid、MySQL
缓存与任务 Redis、Quartz
接口与工具 JWT、Swagger/Springfox 3、Velocity、Fastjson2、Apache POI、OSHI
前端 Vue 2.6.12、Vue CLI 4.4.6、Element UI 2.15.14、Vue Router、Vuex、Axios
构建 Maven、npm

架构概览

flowchart LR
  A["浏览器 / ruoyi-ui"] --> B["Vue DevServer<br/>/dev-api 代理"]
  B --> C["ruoyi-admin<br/>Spring Boot 入口"]
  C --> D["ruoyi-framework<br/>安全、配置、Web 基础设施"]
  C --> E["ruoyi-system<br/>用户、角色、菜单、字典等"]
  C --> F["ruoyi-generator<br/>代码生成与扩展平台"]
  C --> G["ruoyi-quartz<br/>定时任务"]
  C --> H["MySQL"]
  C --> I["Redis"]
  F --> J["Velocity 模板"]
  F --> K["代码预览 / ZIP 下载"]

目录结构

路径 说明
ruoyi-admin 后端启动入口,打包为可执行 war;包含 Web Controller、配置文件和静态资源入口。
ruoyi-framework 若依框架层承载安全认证、权限校验、数据源、Web 配置、拦截器、异步任务等基础能力。
ruoyi-system 系统管理业务模块,包括用户、角色、菜单、部门、岗位、字典、参数、通知公告、日志等。
ruoyi-quartz 定时任务模块,封装 Quartz 任务、任务日志和调度管理。
ruoyi-generator 代码生成模块;包含若依原生表驱动代码生成,以及本项目扩展的项目、模板、数据源、模块、代码片段、项目结构等功能。
ruoyi-common 通用工具、常量、注解、基础实体、响应对象、异常、工具类等公共代码。
ruoyi-ui Vue 2 + Element UI 前端工程。
sql 数据库初始化与扩展脚本。
doc 代码生成平台规划文档。
docs 部分扩展 Controller 的接口说明文档。
binry.batry.sh 启停脚本与辅助脚本。

核心功能

若依基础能力

  • 用户、角色、菜单、部门、岗位管理。
  • 字典、参数、通知公告管理。
  • 登录日志、操作日志、在线用户管理。
  • 服务监控、缓存监控、Druid 连接池监控。
  • Quartz 定时任务与任务日志。
  • Swagger 接口文档、表单构建、若依原生代码生成。

代码生成平台扩展

功能 后端接口前缀 前端位置
数据源管理 /generator/datasource ruoyi-ui/src/views/generator/datasource
项目管理 /generator/project ruoyi-ui/src/views/generator/project
项目关联表 /generator/project/table ProjectTableConfig.vue
项目关联模块 /generator/project/module ProjectModuleConfig.vue
项目模板配置 /generator/project/template ProjectTemplateConfig.vue
项目结构树 /generator/structure ruoyi-ui/src/views/generator/structure
模板管理 /generator/template ruoyi-ui/src/views/generator/template
模板文件管理 /generator/templateFile templateFile.js 与模板相关页面
功能模块管理 /generator/module ruoyi-ui/src/views/generator/module
代码片段管理 /generator/snippet ruoyi-ui/src/views/generator/snippet
原生表代码生成 /tool/gen ruoyi-ui/src/views/tool/gen

扩展生成链路大致为:维护数据源和数据表,配置项目基本信息、项目关联表、模块、模板和结构树,通过 GenProjectController 预览或下载项目结构与生成代码。

本地启动

1. 环境准备

  • JDK 1.8
  • Maven 3.6+
  • MySQL 5.7/8.0
  • Redis 5+
  • Node.jspackage.json 要求 >=8.9,实际开发建议使用 Node 14/16 LTS
  • npm 6+

2. 初始化数据库

默认数据库配置在 ruoyi-admin/src/main/resources/application-druid.yml

spring:
  datasource:
    druid:
      master:
        url: jdbc:mysql://localhost:3306/ry
        username: root
        password: 123456

创建数据库:

CREATE DATABASE ry DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

新库推荐直接导入完整脚本:

mysql -uroot -p ry < sql/db.sql

sql/db.sql 已整合若依基础表、Quartz 调度表、代码生成平台扩展表、初始化数据、代码生成平台菜单和按钮权限。分散脚本仍可作为增量或排查参考:

  1. sql/ry_20240629.sql:若依基础表与基础数据。
  2. sql/quartz.sqlQuartz 调度表。
  3. sql/gen_project.sql:项目基础信息表 gen_project
  4. sql/module_management.sql:功能模块、代码片段、项目模块关系表。
  5. sql/gen_table_project_rel.sql:项目与代码生成表关系。
  6. sql/sys_project_structure.sql:项目结构节点表与初始化结构。
  7. sql/add_create_table_sql_field.sql:给 gen_table 增加建表 SQL 字段。
  8. ruoyi-generator/sql/template_file_update.sql:模板文件表增量字段。

3. 配置后端

重点检查以下配置:

文件 关键项
ruoyi-admin/src/main/resources/application.yml server.port 默认 8080server.servlet.context-path 默认 /Redis 地址,上传目录 ruoyi.profileSwagger 开关。
ruoyi-admin/src/main/resources/application-druid.yml MySQL 地址、账号、密码、Druid 控制台账号。
ruoyi-generator/src/main/resources/generator.yml 代码生成默认作者、包名、表前缀策略。

启动后端:

mvn clean install -DskipTests
mvn -pl ruoyi-admin -am spring-boot:run

也可以打包后运行:

mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.war

后端默认地址:http://localhost:8080

4. 启动前端

cd ruoyi-ui
npm install --registry=https://registry.npmmirror.com
npm run dev

前端默认端口来自 ruoyi-ui/vue.config.js,为 80。开发环境的 VUE_APP_BASE_API=/dev-api,会代理到 http://localhost:8080/

浏览器访问:http://localhost:80

默认账号:

admin / admin123

如果本机 80 端口被占用,可以临时指定端口:

# Windows PowerShell
$env:port=81
npm run dev

构建与发布

后端构建:

mvn clean package -DskipTests

产物位于:

ruoyi-admin/target/ruoyi-admin.war

前端构建:

cd ruoyi-ui
npm run build:prod

产物位于:

ruoyi-ui/dist

生产环境需要注意:

  • ruoyi-ui/vue.config.js 中生产 publicPath/yidaima
  • ruoyi-ui/.env.production 中接口前缀为 /prod-api
  • 如果部署在子路径或网关后面,需要同步调整 Nginx、前端 publicPath、接口代理和后端 context-path

常用入口

入口 地址
后端服务 http://localhost:8080
前端页面 http://localhost:80
Swagger UI http://localhost:8080/swagger-ui/index.html
Druid 控制台 http://localhost:8080/druid,默认 ruoyi / 123456

开发约定

  • 后端扩展 Controller 主要位于 ruoyi-generator/src/main/java/com/ruoyi/generator/controller
  • 后端扩展实体、Mapper、Service 位于 ruoyi-generator/src/main/java/com/ruoyi/generator/{domain,mapper,service}
  • MyBatis XML 位于 ruoyi-generator/src/main/resources/mapper/generator
  • 前端接口封装位于 ruoyi-ui/src/api/generator
  • 前端扩展页面位于 ruoyi-ui/src/views/generator
  • 权限标识沿用若依格式,例如 generator:project:listgenerator:template:addtool:gen:preview
  • 代码生成模板分为若依默认模板 ruoyi-generator/src/main/resources/vm 与扩展模板目录 ruoyi-generator/src/main/resources/qing

文档索引

  • doc/code-generator-platform.md:代码生成平台功能规划。
  • docs/*.md:扩展 Controller 的接口说明。
  • ruoyi-ui/README.md:前端工程原始启动说明。
  • 若依官方文档:http://doc.ruoyi.vip

排查提示

  • 后端启动失败优先检查 MySQL、Redis 是否启动,以及 application-druid.yml 中数据库账号密码是否正确。
  • 前端请求 404 或跨域异常时,检查 .env.developmentVUE_APP_BASE_APIvue.config.js 的代理目标。
  • 使用生产构建部署到非根路径时,检查 /yidaima/prod-api 与网关转发规则是否一致。
  • 生成平台页面报表不存在时,优先核对扩展 SQL 是否已导入,尤其是模板、数据源、项目结构和项目关联表。