项目结构
本文对 Yudao(ruoyi-vue-pro) 前后端项目的整体结构进行说明,帮助快速理解项目的模块划分与代码组织方式。
一、后端结构

后端整体采用 多 Maven Module 架构,共分为 四类模块:
| Maven Module | 作用 |
|---|---|
yudao-dependencies |
Maven 依赖版本统一管理 |
yudao-framework |
Java 框架能力封装 |
yudao-module-xxx |
各业务功能模块 |
yudao-server |
管理后台 + 用户 App 的服务端 |
1. yudao-dependencies
该模块是一个 Maven BOM ,仅包含一个 pom.xml 文件,用于统一管理项目中所有 Maven 依赖的版本号,从而:
- 避免依赖版本冲突
- 简化各模块的
pom配置 - 统一升级依赖版本

2. yudao-framework

该模块用于 框架层封装 ,分为 技术组件 与 业务组件 两大类。
2.1 技术组件
| Maven Module | 作用 |
|---|---|
yudao-common |
基础 POJO、枚举、工具类 |
yudao-spring-boot-starter-web |
Web 封装(全局异常、访问日志等) |
yudao-spring-boot-starter-websocket |
WebSocket 封装(Token 认证、集群广播) |
yudao-spring-boot-starter-security |
认证授权(Spring Security)、操作日志 |
yudao-spring-boot-starter-mybatis |
数据库操作(MyBatis Plus) |
yudao-spring-boot-starter-redis |
缓存操作(Spring Data Redis + Redisson) |
yudao-spring-boot-starter-mq |
消息队列(基于 Redis,支持集群/广播) |
yudao-spring-boot-starter-job |
定时任务(Quartz,支持集群) |
yudao-spring-boot-starter-protection |
服务保障(幂等、限流、熔断、分布式锁) |
yudao-spring-boot-starter-excel |
Excel 导入导出(EasyExcel) |
yudao-spring-boot-starter-monitor |
服务监控(链路、日志、指标) |
yudao-spring-boot-starter-test |
单元测试(JUnit + Mockito) |
2.2 业务组件
| Maven Module | 作用 |
|---|---|
yudao-spring-boot-starter-biz-tenant |
SaaS 多租户 |
yudao-spring-boot-starter-biz-data-permission |
数据权限 |
yudao-spring-boot-starter-biz-ip |
地区 & IP 库 |
每个组件统一包含两部分:
core:组件核心逻辑与能力封装config:Spring Boot 自动配置

3. yudao-module-xxx(业务模块)

用于承载具体业务功能:
| 模块 | 说明 |
|---|---|
yudao-module-ai |
AI 大模型 |
yudao-module-bpm |
工作流 |
yudao-module-crm |
CRM 系统 |
yudao-module-erp |
ERP 系统 |
yudao-module-infra |
基础设施 |
yudao-module-iot |
IoT 物联网 |
yudao-module-mall |
商城系统 |
yudao-module-member |
会员中心 |
yudao-module-mp |
微信公众号 |
yudao-module-pay |
支付系统 |
yudao-module-report |
大屏报表 |
3.1 分层架构
每个业务模块采用 三层架构 + 非严格分层:


3.2 Controller 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| controller.admin | Controller | 管理后台 REST API(admin-api/) |
AuthController |
| controller.admin | VO | Admin 接口入参/出参 | AuthLoginReqVO |
| controller.app | Controller | App REST API(app-api/) |
AppAuthController |
| controller.app | VO | App 接口入参/出参 | AppAuthLoginReqVO |
| controller | .http | IDEA Http Client 请求文件 | AuthController.http |
3.3 Service 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| service | Service | 业务接口定义 | AdminUserService |
| service | ServiceImpl | 业务实现 | AdminUserServiceImpl |
3.4 DAL 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| dal | - | 数据访问层 | - |
| dal.dataobject | DO | 表/Redis 映射对象 | AdminUserDO |
| dal.mysql | Mapper | MySQL 操作 | AdminUserMapper |
| dal.redis | RedisDAO | Redis 操作 | OAuth2AccessTokenRedisDAO |
3.5 API 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| api | Api | 模块对外接口 | AdminUserApi |
| api | ApiImpl | 接口实现 | AdminUserApiImpl |
| api | DTO | 接口入参/出参 | AdminUserRespDTO |
3.6 MQ 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| mq | - | 消息队列 | - |
| mq.message | Message | 消息定义 | SmsSendMessage |
| mq.producer | Producer | 消息生产 | SmsProducer |
| mq.consumer | Consumer | 消息消费 | SmsSendConsumer |
3.7 Job 层

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| job | Job | 定时任务 | DemoJob |
3.8 Enum 与其它

| 包 | 类 | 作用 | 示例 |
|---|---|---|---|
| enums | Enum | 字段枚举 | SocialTypeEnum |
| enums | DictTypeConstants | 字典枚举 | DictTypeConstants |
| enums | ErrorCodeConstants | 错误码 | ErrorCodeConstants |
| convert | Convert | 对象转换 | UserConvert |
| framework | - | 模块内部框架 | YudaoCaptchaConfiguration |
4. yudao-server
yudao-server 是后端 启动容器模块:
- 引入所需的
yudao-module-xxx - 对外提供 RESTful API
- 连接前端
yudao-ui-admin-vue3
本质上是一个 空壳容器:

二、前端结构(yudao-ui-admin-vue3)

.
├── .github # GitHub workflows
├── .husky # Husky 配置
├── .vscode # VSCode 配置
├── mock # Mock 数据
├── public # 静态资源
├── src # 核心代码
│ ├── api # 接口管理
│ ├── assets # 资源文件
│ ├── components # 公共组件
│ ├── hooks # Hooks
│ ├── layout # 布局
│ ├── locales # 多语言
│ ├── plugins # 插件
│ ├── router # 路由
│ ├── store # 状态管理
│ ├── styles # 全局样式
│ ├── utils # 工具类
│ ├── views # 页面
│ ├── App.vue # 入口组件
│ ├── main.ts # 入口文件
│ └── permission.ts # 路由权限
├── types # 全局类型
├── .env.* # 环境变量
├── index.html # 页面入口
├── package.json
├── vite.config.ts # Vite 配置
└── windi.config.ts # WindiCSS 配置
总结
- 后端采用 多 Module + 插件化架构
- 业务模块高度解耦,支持灵活组合
- 前端基于 Vue3 + Vite + Element Plus
- 前后端结构清晰,适合中大型项目持续演进