Epoch 项目总纲
1. 项目概述
Epoch 是一个基于 Spring Boot 的企业级应用开发平台,由 epoch-framework(框架层)和 epoch-boot(业务层)两部分组成。平台采用模块化设计,提供了一系列开箱即用的功能模块,旨在简化企业级应用的开发流程,提高开发效率和代码质量。
1.1 项目定位
- epoch-framework:提供基础框架和工具,支持模块化开发,低耦合设计
- epoch-boot:基于 epoch-framework 实现的业务应用,包含通用业务模块和系统功能
1.2 演示地址
演示账号: test 密码: 123456
业务演示系统
| 系统名称 | 访问地址 | 说明 |
|---|---|---|
| 业务演示 Demo 1 | https://demo1.epochcloud.cn | 测试1 |
| 业务演示 Demo 2 | https://demo1.epochcloud.cn | 测试2 |
统一认证中心
| 功能模块 | 访问地址 | 说明 |
|---|---|---|
| 单点登录 (SSO) | https://sso.epochcloud.cn/login | 统一用户认证入口 |
| 系统后台管理 | https://admin.epochcloud.cn/#/auth/login | 管理员控制台 |
2. epoch-framework 结构与功能
2.1 项目结构
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
2.2 核心模块功能
2.2.1 framework-common(通用工具模块)
框架的基础模块,提供各种常用工具类和功能组件:
- async:异步任务执行器配置与服务
- consts:框架通用常量定义
- core:断言工具、用户信息获取工具
- domain:登录用户信息模型、树形结构展示模型
- enums:Web 过滤器顺序枚举
- exception:业务异常基类
- pojo:分页参数模型、统一响应结果模型
- resp:错误码接口与全局错误码定义
- util:JSON 处理、分布式追踪、Servlet 工具、Spring 工具、字符串处理等
2.2.2 framework-web(Web 应用模块)
提供 Web 应用开发所需的基础功能:
- exception:全局异常处理器,统一拦截并处理各种异常
- mq:消息队列支持
- 基础接口定义(消息模型、处理器、发送器)
- 配置管理
- RocketMQ 实现
2.2.3 framework-ai(AI 功能模块)
预留模块,尚未实现具体 AI 功能。
2.2.4 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:定时任务自动配置
- 支持原生定时任务
- 支持 Quartz(内存和数据库模式)
- 支持 XXL-Job
2.2.5 framework-build(构建配置模块)
统一依赖版本管理和构建插件配置:
- 核心依赖版本管理(Spring Boot、Spring Cloud、MyBatis 等)
- 构建插件配置
- 依赖冲突解决
- 构建环境统一
3. epoch-boot 结构与功能
3.1 项目结构
epoch-boot/
├── epoch-app-core/ # 核心业务模块
│ ├── common/ # 通用业务模块
│ │ ├── codegen/ # 代码生成模块
│ │ ├── dict/ # 字典管理模块
│ │ ├── file/ # 文件管理模块
│ │ └── oss/ # 对象存储模块
│ └── sys/ # 系统功能模块
│ ├── auth/ # 认证授权模块
│ ├── common/ # 系统通用工具
│ ├── security/ # 安全策略模块
│ └── system/ # 系统管理模块
├── epoch-app-service/ # 应用服务模块
│ ├── config/ # 应用配置
│ └── AppRunApplication.java # 应用入口
└── pom.xml # 项目根 POM
3.2 核心模块功能
3.2.1 epoch-app-core(核心业务模块)
3.2.1.1 common(通用业务模块)
-
codegen(代码生成)
- 提供代码生成表的增删改查接口
- 支持根据数据库表结构生成代码
- 支持自定义模板和生成规则
-
dict(字典管理)
- 字典和字典数据的 RESTful 接口
- 支持字典的创建、更新、删除和查询
- 支持字典数据的管理
- 提供 Feign 接口供其他服务调用
-
file(文件管理)
- 文件上传下载接口
- 支持多平台存储(本地、OSS)
- 提供文件配置管理
- 提供 Feign 接口供其他服务调用
-
oss(对象存储)
- OSS 客户端配置与连接池管理
- 阿里云 OSS 实现
- 支持文件的上传、下载、删除等操作
3.2.1.2 sys(系统功能模块)
-
auth(认证授权)
- 用户登录、登出接口
- 验证码生成与验证
- 登录尝试缓存管理
- 基于 Sa-Token 的权限控制
-
common(系统通用工具)
- 菜单类型枚举定义
- 系统常量定义
- 角色类型枚举
- IP 地区工具类
- AES 密钥生成工具
-
security(安全策略)
- 密码加密策略
- 设备限制策略
- IP 限制策略
- 登录限制策略
- 密码策略
- 注册安全策略
- 会话策略
- 时间限制策略
-
system(系统管理)
- 用户管理
- 部门管理
- 角色管理
- 菜单管理
- 定时任务示例
3.2.2 epoch-app-service(应用服务模块)
- 配置管理:CORS 配置、Sa-Token 配置等
- 应用入口:AppRunApplication 主类
- 部署脚本:提供应用部署脚本
4. 技术栈
| 类别 | 技术/框架 | 版本 |
|---|---|---|
| 基础框架 | Spring Boot | 3.4.1 |
| 微服务 | Spring Cloud | 2024.0.0 |
| 微服务组件 | Spring Cloud Alibaba | 2023.0.3.2 |
| 持久层 | MyBatis | 3.5.17 |
| ORM 增强 | MyBatis Plus | 3.5.15 |
| 缓存 | Redis | 3.50.0 |
| 消息队列 | RocketMQ | 2.3.1 |
| 安全框架 | Sa-Token | 1.44.0 |
| API 文档 | Knife4j | 4.6.0 |
| 定时任务 | XXL-Job | 2.4.0 |
| 分布式追踪 | SkyWalking | 9.0.0 |
| 工具类库 | Hutool | 5.8.25 |
| 工具类库 | Apache Commons | 3.15.0 |
| JSON 处理 | Jackson | 2.17.0 |
| 日志框架 | Slf4j | 2.0.13 |
| 代码简化 | Lombok | 1.18.32 |
5. 系统架构
5.1 分层架构
┌─────────────────────────────────────────────────┐
│ epoch-boot │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────┐
│ │ 业务模块 │ │ 系统功能 │ │ 应用服务 │
│ │ (codegen/dict/file) │ (auth/security/system)│ (config) │
│ └─────────────┘ └─────────────┘ └────────────┘
└───────────────────────┬─────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ epoch-framework │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────┐
│ │ 通用工具 │ │ Web 应用 │ │ 自动配置 │
│ │ (common) │ │ (web) │ │ (starter) │
│ └─────────────┘ └─────────────┘ └────────────┘
└───────────────────────┬─────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 基础组件 │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────┐
│ │ Spring Boot │ │ Spring Cloud│ │ 数据库 │
│ │ │ │ │ │ 缓存/消息队列 │
│ └─────────────┘ └─────────────┘ └────────────┘
└─────────────────────────────────────────────────┘
5.2 核心设计理念
- 模块化设计:各模块低耦合,可独立使用和扩展
- 配置驱动:通过配置文件灵活控制功能开关
- 自动装配:提供丰富的自动配置,简化集成
- 统一规范:统一异常处理、响应格式、日志格式
- 易扩展:预留扩展接口,支持自定义实现
6. 核心功能
6.1 基础功能
- 统一响应格式:全局统一的 API 响应格式
- 异常处理:统一的异常拦截和处理机制
- 分页查询:通用的分页查询功能
- 数据校验:请求参数校验
- 日志记录:统一的日志格式和级别
- 分布式追踪:支持 SkyWalking 分布式追踪
6.2 安全功能
- 认证授权:基于 Sa-Token 的认证授权机制
- 权限控制:细粒度的权限控制
- 安全策略:IP 限制、设备限制、时间限制等
- 密码策略:复杂密码要求和加密存储
6.3 业务功能
- 代码生成:根据数据库表结构生成代码
- 字典管理:系统字典和字典数据管理
- 文件管理:文件上传下载和存储管理
- 对象存储:支持阿里云 OSS 等云存储服务
- 定时任务:支持多种定时任务框架
- 通知服务:邮件和短信通知功能
7. 应用场景
- 企业级管理系统:提供完整的系统管理功能
- 微服务架构:作为微服务架构的基础框架
- 快速开发平台:加速企业应用开发
- 统一技术栈:规范团队开发,提高代码质量
- 业务中台:作为业务中台的基础框架
8. 快速开始
8.1 环境要求
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 6.0+
- RocketMQ 4.9+(可选)
8.2 项目搭建
-
克隆项目
git clone https://your-repo/epoch-framework.git
git clone https://your-repo/epoch-boot.git -
导入依赖
<!-- 在项目中引入框架依赖 -->
<dependency>
<groupId>com.epoch</groupId>
<artifactId>framework-common</artifactId>
<version>${epoch.version}</version>
</dependency> -
配置应用
# application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/epoch?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: password
redis:
host: localhost
port: 6379 -
启动应用
@SpringBootApplication
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
9. 未来规划
9.1 epoch-framework
- 完善 AI 功能模块
- 增加更多中间件集成(如 Kafka、Elasticsearch)
- 优化性能和稳定性
- 提供更多示例和文档
- 支持 Serverless 架构
9.2 epoch-boot
- 增加更多业务模块(如工作流、报表、CMS等)
- 完善权限管理和审计功能
- 支持多租户架构
- 提供移动端支持
- 增加数据分析和可视化功能
10. 总结
Epoch 平台为企业级应用开发提供了完整的解决方案,通过模块化设计和丰富的功能模块,大幅提高了开发效率和代码质量。平台采用先进的技术栈和设计理念,支持灵活扩展和定制,能够满足不同规模企业的应用开发需求。
随着平台的不断发展和完善,Epoch 将成为企业级应用开发的首选平台之一,为企业数字化转型提供强大的技术支撑。