跳到主要内容

Epoch 项目总纲

1. 项目概述

Epoch 是一个基于 Spring Boot 的企业级应用开发平台,由 epoch-framework(框架层)和 epoch-boot(业务层)两部分组成。平台采用模块化设计,提供了一系列开箱即用的功能模块,旨在简化企业级应用的开发流程,提高开发效率和代码质量。

1.1 项目定位

  • epoch-framework:提供基础框架和工具,支持模块化开发,低耦合设计
  • epoch-boot:基于 epoch-framework 实现的业务应用,包含通用业务模块和系统功能

1.2 演示地址

演示账号: test 密码: 123456

业务演示系统

系统名称访问地址说明
业务演示 Demo 1https://demo1.epochcloud.cn测试1
业务演示 Demo 2https://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 Boot3.4.1
微服务Spring Cloud2024.0.0
微服务组件Spring Cloud Alibaba2023.0.3.2
持久层MyBatis3.5.17
ORM 增强MyBatis Plus3.5.15
缓存Redis3.50.0
消息队列RocketMQ2.3.1
安全框架Sa-Token1.44.0
API 文档Knife4j4.6.0
定时任务XXL-Job2.4.0
分布式追踪SkyWalking9.0.0
工具类库Hutool5.8.25
工具类库Apache Commons3.15.0
JSON 处理Jackson2.17.0
日志框架Slf4j2.0.13
代码简化Lombok1.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 项目搭建

  1. 克隆项目

    git clone https://your-repo/epoch-framework.git
    git clone https://your-repo/epoch-boot.git
  2. 导入依赖

    <!-- 在项目中引入框架依赖 -->
    <dependency>
    <groupId>com.epoch</groupId>
    <artifactId>framework-common</artifactId>
    <version>${epoch.version}</version>
    </dependency>
  3. 配置应用

    # 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
  4. 启动应用

    @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 将成为企业级应用开发的首选平台之一,为企业数字化转型提供强大的技术支撑。