epoch-framework 详细文档
1. 项目概述
epoch-framework 是 Epoch 平台的框架层,基于 Spring Boot 构建,提供了一系列开箱即用的功能模块和工具类,旨在为企业级应用开发提供基础能力支持。框架采用模块化设计,各模块之间低耦合,可根据需求灵活组合使用。
2. 项目结构
epoch-framework/
├── framework-common/ # 通用工具模块
├── framework-web/ # Web 应用模块
├── framework-ai/ # AI 功能模块(预留)
├── framework-strater/ # Spring Boot 自动配置模块集合
│ ├── framework-starter-redis/ # Redis 自动配置
│ ├── framework-starter-mybatis/ # MyBatis 自动配置
│ ├── framework-starter-monitor/ # 监控功能自动配置
│ ├── framework-starter-web/ # Web 功能自动配置
│ ├── framework-starter-notify/ # 通知功能自动配置
│ └── framework-starter-job/ # 定时任务自动配置
├── framework-build/ # 构建配置模块
└── pom.xml # 项目根 POM
3. 核心模块
3.1 通用工具模块 (framework-common)
提供各种常用工具类和功能组件,是框架的基础模块。
主要功能:
- 异步任务执行
- 常量定义
- 核心工具类(断言、用户信息获取等)
- 领域模型定义
- 枚举类定义
- 异常处理基类
- 数据传输对象定义
- 响应码系统
- 各种工具类集合(JSON、分布式追踪、Servlet、Spring 等)
3.2 Web 应用模块 (framework-web)
提供 Web 应用开发所需的基础功能支持。
主要功能:
- 全局异常处理
- 消息队列支持(RocketMQ 实现)
- 统一响应格式
3.3 AI 功能模块 (framework-ai)
目前为预留模块,尚未实现具体的 AI 功能,仅包含示例代码。
3.4 自动配置模块集合 (framework-starter)
提供各种功能的 Spring Boot 自动配置,方便在 Spring Boot 应用中快速集成。
主要功能:
- Redis 客户端自动配置
- MyBatis 框架自动配置
- 应用监控功能自动配置
- Web 功能自动配置
- 通知功能自动配置(邮件、短信)
- 定时任务自动配置(原生、Quartz、XXL-Job)
3.5 构建配置模块 (framework-build)
统一依赖版本管理和构建插件配置,确保项目各模块的依赖一致性和构建稳定性。
主要功能:
- 统一依赖管理
- 构建插件配置
- 依赖冲突解决
- 构建环境统一
4. 设计理念
4.1 模块化设计
各模块之间低耦合,可独立使用和扩展,避免了功能的紧耦合。
4.2 配置驱动
通过配置文件灵活控制功能开关和参数,支持不同环境的配置隔离。
4.3 自动装配
提供丰富的自动配置,简化集成过程,减少重复配置代码。
4.4 统一规范
统一的异常处理、响应格式、日志格式等,提高代码一致性和可维护性。
4.5 易扩展
预留扩展接口,支持自定义实现,满足不同业务场景的需求。
5. 技术栈
| 技术/框架 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 3.4.1 | 基础框架 |
| Spring Cloud | 2024.0.0 | 微服务支持 |
| Spring Cloud Alibaba | 2023.0.3.2 | 微服务组件 |
| MyBatis | 3.5.17 | 持久层框架 |
| MyBatis Plus | 3.5.15 | MyBatis 增强工具 |
| Redis | 3.50.0 | 缓存 |
| RocketMQ | 2.3.1 | 消息队列 |
| Sa-Token | 1.44.0 | 安全框架 |
| Knife4j | 4.6.0 | API 文档 |
| XXL-Job | 2.4.0 | 分布式任务调度 |
| SkyWalking | 9.0.0 | 分布式追踪 |
6. 快速开始
6.1 环境要求
- JDK 17+
- Maven 3.6+
6.2 引入依赖
<!-- 在项目中引入框架依赖 -->
<dependency>
<groupId>com.epoch</groupId>
<artifactId>framework-common</artifactId>
<version>${epoch.version}</version>
</dependency>
<!-- 根据需要引入其他模块 -->
<dependency>
<groupId>com.epoch</groupId>
<artifactId>framework-starter-redis</artifactId>
<version>${epoch.version}</version>
</dependency>
6.3 配置使用
根据需要在 application.yml 中配置相关参数,然后直接使用框架提供的功能。
7. 扩展机制
epoch-framework 提供了多种扩展机制:
- 接口扩展:通过实现预留接口扩展功能
- 配置扩展:通过配置文件自定义功能参数
- 组件替换:通过 Spring Boot 的自动配置机制替换默认实现
8. 最佳实践
- 按需引入:只引入项目需要的模块,减少不必要的依赖
- 合理配置:根据实际需求配置各模块参数
- 遵循规范:使用框架提供的统一规范和工具类
- 适当扩展:在需要时通过扩展机制自定义功能
9. 版本更新
9.1 主要版本
- 3.x:基于 Spring Boot 3.x,支持最新技术栈
- 2.x:基于 Spring Boot 2.x,稳定版本
9.2 升级指南
请参考项目的升级文档进行版本升级,注意查看版本间的兼容性变化。