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

项目结构

本文对 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
  • 前后端结构清晰,适合中大型项目持续演进
相关推荐
东北小狐狸-Hellxz1 天前
解决java客户端连接ssh失败问题
java·网络·ssh
悟能不能悟1 天前
HttpServletRequest request获取整个headers有什么方法
java
__万波__1 天前
二十三种设计模式(二十)--解释器模式
java·设计模式·解释器模式
北岛寒沫1 天前
北京大学国家发展研究院 经济学原理课程笔记(第二十五课 开放宏观基本概念)
经验分享·笔记·学习
网安_秋刀鱼1 天前
【java安全】反序列化 - CC1链
java·c语言·安全
零度@1 天前
Java消息中间件-Kafka全解(2026精简版)
java·kafka·c#·linq
钱多多_qdd1 天前
springboot注解(二)
java·spring boot·后端
Cosmoshhhyyy1 天前
《Effective Java》解读第32条:谨慎并用泛型和可变参数
java·python
帅气的你1 天前
面向Java程序员的思维链(CoT)提示词写法学习指南
java