跳到主要内容
版本:Next

epoch-boot 详细文档

1. 项目概述

epoch-boot 是 Epoch 平台的业务层,基于 epoch-framework 构建,提供了一系列开箱即用的业务功能模块和基础应用,旨在为企业级应用开发提供快速构建能力。该模块采用模块化设计,各业务模块之间低耦合,可根据需求灵活组合使用。

2. 项目结构

epoch-boot/
├── epoch-app-core/ # 应用核心模块
├── epoch-admin/ # 后台管理模块
├── epoch-file/ # 文件管理模块
├── epoch-generator/ # 代码生成模块
├── epoch-dict/ # 字典管理模块
├── epoch-notify/ # 通知管理模块
├── epoch-task/ # 任务管理模块
├── epoch-monitor/ # 监控管理模块
└── pom.xml # 项目根 POM

3. 核心模块

3.1 应用核心模块 (epoch-app-core)

提供应用开发所需的基础功能支持,包括用户认证、权限管理、日志管理等。

主要功能:

  • 用户认证与授权
  • 角色管理
  • 权限管理
  • 日志管理
  • 系统配置管理
  • 数据权限控制

3.2 后台管理模块 (epoch-admin)

提供完整的后台管理系统功能,包括用户管理、角色管理、权限管理、系统配置等。

主要功能:

  • 用户管理
  • 角色管理
  • 权限管理
  • 菜单管理
  • 系统配置
  • 日志管理
  • 数据字典

3.3 文件管理模块 (epoch-file)

提供文件上传、下载、预览等功能,支持本地存储和云存储。

主要功能:

  • 文件上传
  • 文件下载
  • 文件预览
  • 文件管理
  • 存储策略配置
  • 权限控制

3.4 代码生成模块 (epoch-generator)

提供代码自动生成功能,支持根据数据库表结构生成前后端代码。

主要功能:

  • 数据库表结构解析
  • 实体类生成
  • Mapper 接口生成
  • Service 层生成
  • Controller 层生成
  • 前端页面生成
  • 代码模板配置

3.5 字典管理模块 (epoch-dict)

提供数据字典管理功能,支持系统中各种枚举和常量的统一管理。

主要功能:

  • 字典类型管理
  • 字典项管理
  • 字典查询接口
  • 缓存支持
  • 权限控制

3.6 通知管理模块 (epoch-notify)

提供系统通知功能,支持邮件、短信、站内信等多种通知方式。

主要功能:

  • 通知模板管理
  • 通知发送
  • 通知记录查询
  • 通知方式配置
  • 权限控制

3.7 任务管理模块 (epoch-task)

提供任务管理功能,支持定时任务、异步任务等。

主要功能:

  • 任务定义管理
  • 任务调度管理
  • 任务执行记录
  • 任务监控
  • 权限控制

3.8 监控管理模块 (epoch-monitor)

提供系统监控功能,包括应用指标监控、数据库监控、缓存监控等。

主要功能:

  • 应用指标监控
  • 数据库监控
  • 缓存监控
  • 接口调用监控
  • 系统资源监控
  • 告警配置

4. 设计理念

4.1 模块化设计

各业务模块之间低耦合,可独立使用和扩展,避免了功能的紧耦合。

4.2 基于框架层

基于 epoch-framework 构建,充分利用框架层提供的基础能力,减少重复开发。

4.3 前后端分离

采用前后端分离的架构设计,后端提供 RESTful API,前端可自由选择技术栈。

4.4 权限控制

提供细粒度的权限控制,支持菜单权限、按钮权限、数据权限等。

4.5 可扩展性

提供丰富的扩展接口和配置选项,支持自定义业务逻辑和功能扩展。

5. 技术栈

技术/框架版本用途
Spring Boot3.4.1基础框架
Spring Cloud2024.0.0微服务支持
Spring Cloud Alibaba2023.0.3.2微服务组件
MyBatis3.5.17持久层框架
MyBatis Plus3.5.15MyBatis 增强工具
Redis3.50.0缓存
RocketMQ2.3.1消息队列
Sa-Token1.44.0安全框架
Knife4j4.6.0API 文档
XXL-Job2.4.0分布式任务调度
SkyWalking9.0.0分布式追踪

6. 快速开始

6.1 环境要求

  • JDK 17+
  • Maven 3.6+
  • MySQL 8.0+
  • Redis 6.0+
  • RocketMQ 4.9+

6.2 引入依赖

<!-- 在项目中引入 epoch-boot 依赖 -->
<dependency>
<groupId>com.epoch</groupId>
<artifactId>epoch-app-core</artifactId>
<version>${epoch.version}</version>
</dependency>

<!-- 根据需要引入其他模块 -->
<dependency>
<groupId>com.epoch</groupId>
<artifactId>epoch-admin</artifactId>
<version>${epoch.version}</version>
</dependency>

6.3 配置使用

  1. 数据库配置

    spring:
    datasource:
    url: jdbc:mysql://localhost:3306/epoch?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
  2. Redis 配置

    spring:
    redis:
    host: localhost
    port: 6379
    password: password
    database: 0
  3. 启动应用

    @SpringBootApplication
    @EnableEpochBoot
    public class Application {
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }

7. 扩展机制

epoch-boot 提供了多种扩展机制:

  1. 接口扩展:通过实现预留接口扩展功能
  2. 配置扩展:通过配置文件自定义功能参数
  3. 组件替换:通过 Spring Boot 的自动配置机制替换默认实现
  4. 模块组合:根据需求组合使用不同的业务模块

8. 最佳实践

  1. 按需引入:只引入项目需要的业务模块,减少不必要的依赖
  2. 合理配置:根据实际需求配置各模块参数
  3. 遵循规范:使用框架提供的统一规范和工具类
  4. 适当扩展:在需要时通过扩展机制自定义功能
  5. 权限控制:合理配置权限,确保系统安全
  6. 性能优化:定期监控系统性能,优化系统配置

9. 版本更新

9.1 主要版本

  • 3.x:基于 Spring Boot 3.x,支持最新技术栈
  • 2.x:基于 Spring Boot 2.x,稳定版本

9.2 升级指南

请参考项目的升级文档进行版本升级,注意查看版本间的兼容性变化。

10. 部署方式

10.1 单体应用部署

将所有模块打包为一个 JAR 包,通过 Java 命令直接运行:

java -jar epoch-boot.jar

10.2 微服务部署

将各模块拆分为独立的微服务,通过服务注册中心进行服务发现和调用:

# 启动服务注册中心
docker run -d -p 8761:8761 springcloud/eureka

# 启动配置中心
docker run -d -p 8888:8888 springcloud/configserver

# 启动各微服务
java -jar epoch-app-core.jar
java -jar epoch-admin.jar
java -jar epoch-file.jar

10.3 容器化部署

使用 Docker 容器化部署各模块:

FROM openjdk:17-jdk-alpine
VOLUME /tmp
ADD epoch-boot.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

11. 监控与维护

11.1 监控指标

  • 应用指标:CPU 使用率、内存使用率、GC 情况等
  • 业务指标:接口调用次数、响应时间、错误率等
  • 数据库指标:SQL 执行时间、连接数、缓存命中率等

11.2 日志管理

  • 应用日志:记录应用运行过程中的日志信息
  • 访问日志:记录接口访问情况
  • 错误日志:记录应用运行过程中的错误信息

11.3 常见问题排查

  • 数据库连接问题:检查数据库配置和网络连接
  • Redis 连接问题:检查 Redis 配置和网络连接
  • 权限问题:检查用户权限配置
  • 性能问题:使用监控工具分析系统性能

12. 安全建议

  1. 权限控制:合理配置用户权限,遵循最小权限原则
  2. 密码策略:使用强密码策略,定期更换密码
  3. 数据加密:敏感数据进行加密存储
  4. 接口安全:使用 HTTPS 协议,防止数据传输过程中的泄露
  5. 定期备份:定期备份数据库和配置文件
  6. 漏洞扫描:定期进行漏洞扫描,及时修复安全漏洞