ruoyi-common-bom 依赖管理模块
1. 模块概述
ruoyi-common-bom 是common通用模块的统一依赖管理模块,负责定义和管理所有common子模块的版本信息。通过 bom 模式实现了依赖版本的统一管理,避免了版本冲突,简化了项目维护。
- GroupId:
plus.ruoyi - ArtifactId:
ruoyi-common-bom - 当前版本:
5.4.0 - 打包方式:
pom
2. BOM 架构设计
2.1 版本管理策略
xml
<properties>
<revision>5.4.0</revision>
</properties>- 采用统一版本号管理
- 所有模块使用
${revision}占位符 - 便于版本升级和发布管理
2.2 依赖管理范围
通过 父pom文件(根目录pom文件)<dependencyManagement> 统一管理 30+ 个功能模块的版本,确保整个项目的依赖一致性。
3. 功能模块分类
3.1 核心基础模块 (Core Foundation)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 核心模块 | ruoyi-common-core | 基础工具类与通用功能,系统核心依赖 |
| 安全模块 | ruoyi-common-security | 应用安全防护功能,包含加密、验证等 |
| Web服务模块 | ruoyi-common-web | Web应用基础功能支持,MVC配置等 |
| 日志记录模块 | ruoyi-common-log | 统一日志处理功能,日志切面和存储 |
特点: 这些是系统的基础设施模块,几乎所有其他模块都会依赖它们。
3.2 数据处理模块 (Data Processing)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 数据库服务模块 | ruoyi-common-mybatis | MyBatis增强与数据库交互 |
| 缓存服务模块 | ruoyi-common-redis | Redis缓存集成与工具 |
| 序列化模块 | ruoyi-common-json | JSON序列化与反序列化工具 |
| 数据库加解密模块 | ruoyi-common-encrypt | 敏感数据加密存储 |
| Excel处理模块 | ruoyi-common-excel | Excel导入导出功能 |
| 脱敏模块 | ruoyi-common-sensitive | 数据脱敏与隐私保护 |
| OSS模块 | ruoyi-common-oss | 对象存储服务集成 |
| 翻译模块 | ruoyi-common-serialmap | 多语言支持与国际化 |
特点: 专注于数据的存储、处理、转换和安全保护。
3.3 安全与认证模块 (Security & Authentication)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| SaToken模块 | ruoyi-common-satoken | 权限认证框架,统一认证管理 |
| 租户模块 | ruoyi-common-tenant | 多租户支持,数据隔离 |
| 社交登录模块 | ruoyi-common-social | 第三方账号集成,OAuth登录 |
特点: 提供完整的身份认证和授权解决方案。
3.4 通信与消息模块 (Communication & Messaging)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 邮件服务模块 | ruoyi-common-mail | 邮件发送集成,支持模板邮件 |
| 短信模块 | ruoyi-common-sms | 短信发送集成,验证码服务 |
| WebSocket模块 | ruoyi-common-websocket | 实时双向通信支持 |
| SSE模块 | ruoyi-common-sse | 服务器发送事件支持 |
特点: 覆盖了现代应用的各种通信需求。
3.5 API与接口模块 (API & Documentation)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 接口文档模块 | ruoyi-common-doc | API文档生成与测试,集成Swagger/OpenAPI |
特点: 提供API文档自动生成和在线测试能力。
3.6 系统功能模块 (System Features)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 调度模块 | ruoyi-common-job | 定时任务与作业调度 |
| 幂等模块 | ruoyi-common-idempotent | 防止重复提交与操作 |
| 限流模块 | ruoyi-common-ratelimiter | 接口限流与流量控制 |
特点: 提供系统级的高级功能支持。
3.7 业务扩展模块 (Business Extensions)
| 模块名称 | ArtifactId | 功能说明 |
|---|---|---|
| 微信小程序模块 | ruoyi-common-miniapp | 微信小程序开发支持 |
| 微信公众号模块 | ruoyi-common-mp | 微信公众号开发支持 |
| 支付模块 | ruoyi-common-pay | 支付功能集成 |
特点: 面向具体业务场景的功能模块。
4. BOM 使用优势
4.1 版本统一管理
- ✅ 一处修改,全局生效: 只需修改
revision属性即可升级所有模块 - ✅ 避免版本冲突: 确保所有模块使用相同版本,减少兼容性问题
- ✅ 简化维护: 集中管理依赖版本,降低维护成本
4.2 依赖管理简化
xml
<!-- 在子项目中,只需引用 artifactId,无需指定版本 -->
<dependency>
<groupId>plus.ruoyi</groupId>
<artifactId>ruoyi-common-core</artifactId>
<!-- 版本由 BOM 统一管理,无需指定 -->
</dependency>4.3 模块化架构
- ✅ 高内聚低耦合: 每个模块职责单一,功能清晰
- ✅ 按需引入: 项目可根据需要选择性引入模块
- ✅ 扩展灵活: 新功能可独立成模块,不影响现有架构
5. 模块依赖关系
ruoyi-common-bom (根依赖管理)
├── 核心基础层
│ ├── ruoyi-common-core (基础工具)
│ ├── ruoyi-common-security (安全防护)
│ ├── ruoyi-common-web (Web支持)
│ └── ruoyi-common-log (日志处理)
├── 数据处理层
│ ├── ruoyi-common-mybatis (数据库)
│ ├── ruoyi-common-redis (缓存)
│ ├── ruoyi-common-json (序列化)
│ └── ... (其他数据处理模块)
├── 认证授权层
│ ├── ruoyi-common-satoken (认证)
│ ├── ruoyi-common-tenant (多租户)
│ └── ruoyi-common-social (社交登录)
├── 通信消息层
│ ├── ruoyi-common-websocket (实时通信)
│ ├── ruoyi-common-sse (服务推送)
│ └── ... (其他通信模块)
└── 业务扩展层
├── ruoyi-common-miniapp (小程序)
├── ruoyi-common-pay (支付)
└── ... (其他业务模块)6. 最佳实践建议
6.1 使用 BOM 的项目配置
xml
<!-- 在父 POM 中引入 BOM -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>plus.ruoyi</groupId>
<artifactId>ruoyi-common-bom</artifactId>
<version>${revision}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>6.2 模块选择策略
- 必选模块:
core,security,web,log - 数据相关: 根据存储需求选择
mybatis,redis,json等 - 认证授权: 根据安全需求选择
satoken,tenant等 - 业务功能: 根据具体业务场景按需选择
