芋道管理系统学习——项目结构

项目结构

本文对 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
  • 前后端结构清晰,适合中大型项目持续演进
相关推荐
蛋蛋的就会顺顺的2 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8263 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡3 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
遇印记3 小时前
传输层,网络层
运维·服务器·网络·windows·学习
clorinda5 小时前
PyQt5学习:从界面搭建到与机器学习实战
学习
伯恩bourne5 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_5 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs6 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲6 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友