Skip to content

项目结构

项目概览

RuoYi-Plus-UniApp 后端采用 Spring Boot 3.x + Java 21 构建,遵循模块化、分层架构设计原则。项目包含入口模块、通用模块、业务模块和扩展模块四大核心部分,共计 40+ 个子模块,提供完整的企业级应用开发基础设施。

技术栈版本:

技术版本说明
Java21LTS 长期支持版本
Spring Boot3.5.x核心框架
MyBatis-Plus3.5.14ORM 框架
Sa-Token1.44.0认证授权框架
Redisson3.51.0Redis 客户端
Hutool5.8.40工具类库
Warm-Flow1.8.1工作流引擎
SnailJob1.8.0分布式任务调度
LangChain4j0.35.0AI 大模型集成
WxJava4.7.6.B微信开发工具包

完整目录结构

text
📁 ruoyi-plus-uniapp-workflow (项目根目录)

├── 📁 ruoyi-admin                      // 🚀 系统入口模块 - 打包部署的主模块
│   └── 📁 src/main
│       ├── 📁 java/plus/ruoyi
│       │   └── 📄 RuoYiApplication.java    // 启动类
│       └── 📁 resources
│           ├── 📄 application.yml          // 主配置文件
│           ├── 📄 application-dev.yml      // 开发环境配置
│           ├── 📄 application-prod.yml     // 生产环境配置
│           └── 📁 i18n                     // 国际化资源

├── 📁 ruoyi-common                      // 🔧 通用工具模块 (35个子模块)
│   │
│   ├── 📁 ruoyi-common-bom             // 依赖版本管理 (BOM)
│   │   └── 📄 pom.xml                      // 统一版本定义
│   │
│   ├── 📁 ruoyi-common-core            // 核心模块 ⭐
│   │   └── 📁 src/main/java/plus/ruoyi/common/core
│   │       ├── 📁 annotation               // 自定义注解
│   │       ├── 📁 config                   // 核心配置
│   │       ├── 📁 constant                 // 常量定义
│   │       ├── 📁 domain                   // 基础领域模型
│   │       │   ├── 📄 R.java               // 统一响应结果
│   │       │   ├── 📄 PageQuery.java       // 分页查询参数
│   │       │   └── 📄 BaseEntity.java      // 基础实体类
│   │       ├── 📁 enums                    // 枚举类
│   │       ├── 📁 exception               // 异常处理
│   │       │   ├── 📄 ServiceException.java    // 业务异常
│   │       │   └── 📄 GlobalExceptionHandler.java
│   │       ├── 📁 factory                  // 工厂类
│   │       ├── 📁 service                  // 核心服务
│   │       └── 📁 utils                    // 工具类
│   │           ├── 📄 StringUtils.java     // 字符串工具
│   │           ├── 📄 DateUtils.java       // 日期工具
│   │           ├── 📄 BeanCopyUtils.java   // Bean 拷贝
│   │           ├── 📄 ServletUtils.java    // Servlet 工具
│   │           └── 📄 SpringUtils.java     // Spring 工具
│   │
│   ├── 📁 ruoyi-common-doc             // 接口文档模块 (SpringDoc/Knife4j)
│   ├── 📁 ruoyi-common-encrypt         // 数据加密模块 (AES/RSA/SM4)
│   ├── 📁 ruoyi-common-excel           // Excel 处理模块 (FastExcel)
│   ├── 📁 ruoyi-common-http            // HTTP 客户端模块 (Forest)
│   ├── 📁 ruoyi-common-idempotent      // 幂等性处理模块
│   ├── 📁 ruoyi-common-job             // 定时任务模块 (SnailJob)
│   ├── 📁 ruoyi-common-json            // JSON 序列化模块 (Jackson)
│   ├── 📁 ruoyi-common-langchain4j     // AI 大模型模块 (LangChain4j) 🆕
│   ├── 📁 ruoyi-common-log             // 日志处理模块
│   ├── 📁 ruoyi-common-mail            // 邮件发送模块
│   ├── 📁 ruoyi-common-media           // 媒体文件处理模块 🆕
│   ├── 📁 ruoyi-common-miniapp         // 微信小程序模块 (WxJava)
│   ├── 📁 ruoyi-common-mp              // 微信公众号模块 (WxJava)
│   ├── 📁 ruoyi-common-mybatis         // MyBatis-Plus 配置模块
│   ├── 📁 ruoyi-common-openapi         // OpenAPI 接口规范模块 🆕
│   ├── 📁 ruoyi-common-oss             // 对象存储模块 (S3 兼容)
│   │   └── 📁 src/main/java/plus/ruoyi/common/oss
│   │       ├── 📁 client                   // OSS 客户端
│   │       │   ├── 📄 OssClient.java       // 统一客户端接口
│   │       │   └── 📄 OssFactory.java      // 客户端工厂
│   │       ├── 📁 strategy                 // 存储策略
│   │       │   ├── 📄 OssStrategy.java     // 策略接口
│   │       │   ├── 📄 S3OssStrategy.java   // S3 兼容策略
│   │       │   └── 📄 LocalOssStrategy.java // 本地存储策略
│   │       └── 📁 properties               // 配置属性
│   │
│   ├── 📁 ruoyi-common-pay             // 支付模块 (4个子模块) 💰
│   │   ├── 📁 ruoyi-common-pay-core        // 支付核心抽象
│   │   ├── 📁 ruoyi-common-pay-alipay      // 支付宝支付
│   │   ├── 📁 ruoyi-common-pay-wechat      // 微信支付
│   │   └── 📁 ruoyi-common-pay-balance     // 余额支付
│   │
│   ├── 📁 ruoyi-common-ratelimiter     // 限流模块 (Redisson)
│   ├── 📁 ruoyi-common-redis           // Redis 缓存模块 (Redisson)
│   │   └── 📁 src/main/java/plus/ruoyi/common/redis
│   │       ├── 📁 config                   // Redis 配置
│   │       ├── 📁 handler                  // 处理器
│   │       ├── 📁 manager                  // 缓存管理器
│   │       └── 📁 utils
│   │           ├── 📄 RedisUtils.java      // Redis 工具类
│   │           └── 📄 CacheUtils.java      // 缓存工具类
│   │
│   ├── 📁 ruoyi-common-rocketmq        // 消息队列模块 (RocketMQ) 🆕
│   ├── 📁 ruoyi-common-satoken         // Sa-Token 认证配置
│   ├── 📁 ruoyi-common-security        // 安全模块
│   ├── 📁 ruoyi-common-sensitive       // 数据脱敏模块
│   ├── 📁 ruoyi-common-serialMap       // 序列化映射模块
│   ├── 📁 ruoyi-common-sms             // 短信模块 (SMS4J)
│   ├── 📁 ruoyi-common-social          // 社交登录模块 (JustAuth)
│   ├── 📁 ruoyi-common-sse             // SSE 服务端推送模块
│   ├── 📁 ruoyi-common-tenant          // 多租户模块
│   ├── 📁 ruoyi-common-test            // 测试工具模块 🆕
│   ├── 📁 ruoyi-common-web             // Web 通用配置模块
│   └── 📁 ruoyi-common-websocket       // WebSocket 模块

├── 📁 ruoyi-modules                     // 📦 业务功能模块 (5个子模块)
│   │
│   ├── 📁 ruoyi-system                 // 系统管理模块 ⭐
│   │   └── 📁 src/main/java/plus/ruoyi/system
│   │       ├── 📁 auth                     // 认证授权
│   │       │   ├── 📁 controller           // 登录控制器
│   │       │   ├── 📁 domain               // 认证领域模型
│   │       │   │   ├── 📁 bo               // 业务对象
│   │       │   │   └── 📁 vo               // 视图对象
│   │       │   ├── 📁 listener             // 事件监听器
│   │       │   └── 📁 service              // 认证服务
│   │       │       └── 📁 impl
│   │       │
│   │       ├── 📁 config                   // 系统配置
│   │       │   ├── 📁 controller           // 配置管理控制器
│   │       │   ├── 📁 dao                  // 数据访问对象
│   │       │   ├── 📁 domain               // 配置领域模型
│   │       │   ├── 📁 mapper               // MyBatis 映射
│   │       │   └── 📁 service              // 配置服务
│   │       │
│   │       ├── 📁 core                     // 核心 RBAC 功能
│   │       │   ├── 📁 controller           // 用户/角色/菜单/部门控制器
│   │       │   ├── 📁 dao                  // 数据访问对象
│   │       │   ├── 📁 domain               // 核心领域模型
│   │       │   │   ├── 📁 bo               // SysUserBo, SysRoleBo 等
│   │       │   │   └── 📁 vo               // SysUserVo, SysRoleVo 等
│   │       │   ├── 📁 mapper               // 用户/角色/菜单 Mapper
│   │       │   └── 📁 service              // 核心业务服务
│   │       │
│   │       ├── 📁 dict                     // 数据字典
│   │       │   ├── 📁 controller           // 字典控制器
│   │       │   ├── 📁 domain               // 字典领域模型
│   │       │   ├── 📁 mapper               // 字典 Mapper
│   │       │   └── 📁 service              // 字典服务
│   │       │
│   │       ├── 📁 monitor                  // 系统监控
│   │       │   ├── 📁 controller           // 在线用户/服务监控
│   │       │   └── 📁 service              // 监控服务
│   │       │
│   │       ├── 📁 oss                      // 文件存储管理
│   │       │   ├── 📁 controller           // 文件上传/下载控制器
│   │       │   ├── 📁 domain               // OSS 领域模型
│   │       │   ├── 📁 mapper               // OSS Mapper
│   │       │   └── 📁 service              // OSS 业务服务
│   │       │
│   │       └── 📁 tenant                   // 多租户管理
│   │           ├── 📁 controller           // 租户管理控制器
│   │           ├── 📁 domain               // 租户领域模型
│   │           ├── 📁 mapper               // 租户 Mapper
│   │           └── 📁 service              // 租户服务
│   │
│   ├── 📁 ruoyi-business               // 业务扩展模块 ⭐
│   │   └── 📁 src/main/java/plus/ruoyi/business
│   │       ├── 📁 api                      // API 接口层
│   │       │   ├── 📁 app                  // APP 端 API
│   │       │   └── 📁 common               // 通用 API
│   │       │       └── 📁 vo               // 通用视图对象
│   │       │
│   │       ├── 📁 base                     // 基础业务
│   │       │   ├── 📁 authStrategy         // 认证策略 (小程序/公众号)
│   │       │   ├── 📁 controller           // 基础控制器
│   │       │   ├── 📁 dao                  // 数据访问
│   │       │   ├── 📁 domain               // 领域模型
│   │       │   │   ├── 📁 bo               // 业务对象
│   │       │   │   └── 📁 vo               // 视图对象
│   │       │   ├── 📁 mapper               // MyBatis 映射
│   │       │   └── 📁 service              // 业务服务
│   │       │
│   │       ├── 📁 common                   // 业务通用
│   │       │   ├── 📁 domain/vo            // 通用视图对象
│   │       │   └── 📁 service              // 通用服务
│   │       │
│   │       └── 📁 job                      // 定时任务
│   │           └── 📁 demo                 // 示例任务
│   │
│   ├── 📁 ruoyi-mall                   // 商城模块 🆕
│   │   └── 📁 src/main/java/plus/ruoyi/business
│   │       ├── 📁 api                      // 商城 API
│   │       └── 📁 mall                     // 商城领域
│   │           ├── 📁 controller           // 商城控制器
│   │           ├── 📁 dao                  // 数据访问
│   │           ├── 📁 domain               // 商城领域模型
│   │           │   ├── 📁 bo               // 商品/订单 BO
│   │           │   ├── 📁 dto              // 数据传输对象
│   │           │   ├── 📁 groups           // 验证分组
│   │           │   └── 📁 vo               // 商品/订单 VO
│   │           ├── 📁 listener             // 商城事件监听
│   │           ├── 📁 mapper               // 商城 Mapper
│   │           └── 📁 service              // 商城服务
│   │
│   ├── 📁 ruoyi-workflow               // 工作流模块 🆕
│   │   └── 📁 src/main/java/plus/ruoyi/workflow
│   │       ├── 📁 common                   // 工作流通用
│   │       │   ├── 📁 constant             // 常量定义
│   │       │   └── 📁 enums                // 枚举类
│   │       ├── 📁 config                   // 工作流配置
│   │       ├── 📁 controller               // 流程控制器
│   │       ├── 📁 domain                   // 流程领域模型
│   │       │   ├── 📁 bo                   // 流程 BO
│   │       │   └── 📁 vo                   // 流程 VO
│   │       ├── 📁 handler                  // 流程处理器
│   │       ├── 📁 listener                 // 流程监听器
│   │       ├── 📁 mapper                   // 流程 Mapper
│   │       └── 📁 service                  // 流程服务
│   │
│   └── 📁 ruoyi-generator              // 代码生成模块
│       └── 📁 src/main/java/plus/ruoyi/generator
│           ├── 📁 controller               // 生成控制器
│           ├── 📁 domain                   // 生成配置模型
│           ├── 📁 mapper                   // 元数据 Mapper
│           ├── 📁 service                  // 生成服务
│           └── 📁 utils                    // 生成工具

├── 📁 ruoyi-extend                      // 🔌 扩展增强模块 (2个子模块)
│   │
│   ├── 📁 ruoyi-monitor-admin          // Spring Boot Admin 监控
│   │   └── 📁 src/main/java/plus/ruoyi/monitor
│   │       ├── 📄 MonitorAdminApplication.java  // 监控服务启动类
│   │       └── 📁 config                   // 监控配置
│   │
│   └── 📁 ruoyi-snailjob-server        // SnailJob 任务调度中心
│       └── 📁 src/main/java/plus/ruoyi/job
│           ├── 📄 SnailJobServerApplication.java // 调度中心启动类
│           └── 📁 config                   // 调度配置

├── 📁 plus-ui                           // 🖥️ 管理端前端 (Vue 3 + Element Plus)
├── 📁 plus-app                          // 📱 APP 端 (UniApp + WD UI)
├── 📁 plus-uniapp                       // 📱 移动端 (UniApp)
├── 📁 plus-uniapp-demo                  // 📱 移动端示例项目
├── 📁 script                            // 📜 脚本文件
│   ├── 📁 sql                              // 数据库脚本
│   └── 📁 docker                           // Docker 配置

└── 📄 pom.xml                           // Maven 主配置文件

模块详解

🚀 入口模块 (ruoyi-admin)

系统启动入口,负责整合所有模块并提供统一的部署打包。

核心功能:

  • 应用启动入口 (RuoYiApplication.java)
  • 环境配置管理 (dev/test/prod)
  • 国际化资源配置
  • 日志配置

配置文件说明:

文件说明
application.yml主配置,引入其他配置
application-dev.yml开发环境配置
application-prod.yml生产环境配置

🔧 通用模块 (ruoyi-common)

提供系统基础设施和通用功能,共 35 个子模块。

核心基础模块

模块说明主要功能
ruoyi-common-bom依赖版本管理统一管理所有依赖版本
ruoyi-common-core核心工具模块基础实体、异常处理、工具类
ruoyi-common-webWeb 通用配置跨域、过滤器、拦截器
ruoyi-common-jsonJSON 序列化Jackson 配置、自定义序列化器

数据存储模块

模块说明技术栈
ruoyi-common-mybatisORM 框架MyBatis-Plus 3.5.14
ruoyi-common-redis缓存服务Redisson 3.51.0
ruoyi-common-oss对象存储AWS S3 兼容协议

安全认证模块

模块说明技术栈
ruoyi-common-satoken认证授权Sa-Token 1.44.0
ruoyi-common-security安全防护加密、防攻击
ruoyi-common-encrypt数据加密AES/RSA/SM4
ruoyi-common-sensitive数据脱敏手机号、身份证等脱敏

通讯集成模块

模块说明功能
ruoyi-common-websocketWebSocket实时双向通讯
ruoyi-common-sseSSE 推送服务端事件推送
ruoyi-common-mail邮件服务邮件发送、模板
ruoyi-common-sms短信服务SMS4J 多渠道短信
ruoyi-common-rocketmq消息队列RocketMQ 集成

微信生态模块

模块说明技术栈
ruoyi-common-miniapp微信小程序WxJava 4.7.6.B
ruoyi-common-mp微信公众号WxJava 4.7.6.B

支付模块 (ruoyi-common-pay)

支持多种支付渠道的统一支付抽象:

子模块说明
ruoyi-common-pay-core支付核心抽象、统一接口
ruoyi-common-pay-alipay支付宝支付实现
ruoyi-common-pay-wechat微信支付实现
ruoyi-common-pay-balance余额支付实现

其他工具模块

模块说明
ruoyi-common-excelExcel 导入导出 (FastExcel)
ruoyi-common-doc接口文档 (SpringDoc/Knife4j)
ruoyi-common-httpHTTP 客户端 (Forest)
ruoyi-common-job定时任务 (SnailJob)
ruoyi-common-idempotent幂等性控制
ruoyi-common-ratelimiter接口限流
ruoyi-common-log操作日志
ruoyi-common-social社交登录 (JustAuth)
ruoyi-common-tenant多租户支持
ruoyi-common-langchain4jAI 大模型集成
ruoyi-common-media媒体文件处理
ruoyi-common-openapiOpenAPI 规范
ruoyi-common-serialMap序列化映射
ruoyi-common-test测试工具

📦 业务模块 (ruoyi-modules)

包含 5 个业务子模块,实现具体业务功能。

ruoyi-system - 系统管理模块

核心 RBAC 权限管理系统:

子模块功能
auth用户认证、登录、登出、Token 管理
core用户、角色、菜单、部门、岗位管理
config系统配置、通知公告
dict数据字典管理
monitor在线用户、服务监控
oss文件上传、下载、管理
tenant租户管理、数据隔离

ruoyi-business - 业务扩展模块

新业务逻辑的扩展模块:

子模块功能
apiAPP 端和通用 API 接口
base基础业务服务、认证策略
common业务通用组件
job业务定时任务

ruoyi-mall - 商城模块 🆕

电商业务功能:

功能说明
商品管理商品 CRUD、分类、规格
订单管理订单创建、支付、发货、退款
事件监听订单状态变更、库存变动

ruoyi-workflow - 工作流模块 🆕

基于 Warm-Flow 的工作流引擎:

功能说明
流程定义可视化流程设计
流程实例流程发起、审批、流转
任务管理待办、已办、委托、转办
流程监控流程追踪、统计分析

ruoyi-generator - 代码生成模块

可视化代码生成器:

功能说明
表导入从数据库导入表结构
字段配置配置字段类型、校验规则
代码生成生成 Controller/Service/Mapper/Vue
预览下载在线预览、打包下载

🔌 扩展模块 (ruoyi-extend)

独立部署的扩展服务:

模块说明端口
ruoyi-monitor-adminSpring Boot Admin 监控中心9100
ruoyi-snailjob-serverSnailJob 任务调度中心8800

项目架构特点

🏗️ 模块化设计

┌─────────────────────────────────────────────────────────┐
│                    ruoyi-admin (入口层)                  │
├─────────────────────────────────────────────────────────┤
│                  ruoyi-modules (业务层)                  │
│   ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐  │
│   │  system  │ │ business │ │   mall   │ │ workflow │  │
│   └──────────┘ └──────────┘ └──────────┘ └──────────┘  │
├─────────────────────────────────────────────────────────┤
│                  ruoyi-common (通用层)                   │
│   ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐         │
│   │  core  │ │ mybatis│ │ redis  │ │  oss   │ ...     │
│   └────────┘ └────────┘ └────────┘ └────────┘         │
└─────────────────────────────────────────────────────────┘

设计原则:

  • 分层清晰: admin(入口层) → modules(业务层) → common(通用层)
  • 职责明确: 每个模块都有明确的功能边界和职责划分
  • 松耦合: 模块间通过接口依赖,便于独立开发和维护
  • 高内聚: 相关功能集中在同一模块内

📁 领域驱动分层

每个业务模块采用标准分层结构:

📁 module
├── 📁 controller          // 控制层 - 接收请求、参数校验
├── 📁 service             // 服务层 - 业务逻辑
│   └── 📁 impl            // 服务实现
├── 📁 dao                 // 数据访问层 - 复杂查询封装
│   └── 📁 impl            // DAO 实现
├── 📁 mapper              // MyBatis 映射层
├── 📁 domain              // 领域模型
│   ├── 📁 bo              // Business Object - 业务对象
│   ├── 📁 vo              // View Object - 视图对象
│   └── 📁 dto             // Data Transfer Object - 传输对象
└── 📁 listener            // 事件监听器

🔄 依赖关系

ruoyi-admin
    ├── ruoyi-system
    ├── ruoyi-business
    ├── ruoyi-mall
    ├── ruoyi-workflow
    └── ruoyi-generator

ruoyi-system
    └── ruoyi-common-*

ruoyi-business
    ├── ruoyi-common-*
    └── ruoyi-system (部分)

ruoyi-mall
    ├── ruoyi-common-*
    ├── ruoyi-common-pay
    └── ruoyi-business

ruoyi-workflow
    └── ruoyi-common-*

快速定位指南

按功能定位

需求定位模块
用户登录/认证ruoyi-system/auth
用户/角色/菜单管理ruoyi-system/core
文件上传下载ruoyi-system/oss + ruoyi-common-oss
数据字典ruoyi-system/dict
多租户ruoyi-system/tenant + ruoyi-common-tenant
定时任务ruoyi-common-job + ruoyi-business/job
支付功能ruoyi-common-pay-*
工作流ruoyi-workflow
商城业务ruoyi-mall
代码生成ruoyi-generator

按技术定位

技术需求定位模块
缓存操作ruoyi-common-redis
数据库操作ruoyi-common-mybatis
接口文档ruoyi-common-doc
数据加密ruoyi-common-encrypt
消息推送ruoyi-common-sse / ruoyi-common-websocket
短信发送ruoyi-common-sms
邮件发送ruoyi-common-mail
微信集成ruoyi-common-miniapp / ruoyi-common-mp
AI 集成ruoyi-common-langchain4j