LoadUp Framework¶
现代化企业级微服务开发框架
基于 Spring Boot 3.4.3 + JDK 21 构建的高性能、可扩展的单仓库架构框架
🚀 项目简介¶
LoadUp Framework 是一个基于 Spring Boot 的企业级微服务开发框架,采用 Monorepo(单仓库)多模块架构设计,提供了一系列可复用的基础组件和最佳实践,帮助团队快速构建高质量、高性能的企业应用。
核心特性¶
- ✅ 模块化设计 - 清晰的模块边界,单一职责原则,严格的依赖管理
- ✅ 开箱即用 - 自动配置,最小化配置原则,快速启动
- ✅ 高性能 - 基于 JDK 21 虚拟线程,优化的数据库访问和缓存策略
- ✅ 可扩展 - 插件化架构,支持业务定制扩展
- ✅ 企业级 - 完善的安全机制、链路追踪、监控告警
- ✅ 测试友好 - 内置测试框架 Testify,支持单元测试和集成测试
📚 技术栈¶
| 技术领域 | 技术选型 | 版本 |
|---|---|---|
| 编程语言 | Java | 21 |
| 应用框架 | Spring Boot | 3.4.3 |
| 持久层框架 | MyBatis-Flex | 1.11.5 |
| 数据库 | MySQL | 8.0+ |
| 缓存 | Redis (Redisson) | 3.x |
| API 网关 | Custom Gateway | - |
| 认证授权 | JWT + RBAC | - |
| 链路追踪 | OpenTelemetry | 1.57.0 |
| 任务调度 | Quartz/XXL-Job | - |
| API 文档 | OpenAPI (Swagger) | v3 |
| 测试框架 | JUnit 5, Mockito, Testcontainers | - |
| 构建工具 | Maven | 3.6+ |
🏗️ 架构概览¶
LoadUp Framework 采用分层架构设计,各模块职责清晰,依赖关系单向:
graph TD
A[Application 启动层] --> B[Modules 业务模块层]
G[Gateway 网关] --> C[Components 组件层]
B --> C
C --> D[Commons 通用层]
D --> E[Dependencies 依赖管理]
F[Testify 测试框架] -.独立.-> C
style A fill:#e1f5ff
style G fill:#fff4e1
style B fill:#f0f7ff
style C fill:#e8f5e9
style D fill:#fff9e1
style E fill:#f3e5f5
style F fill:#fce4ec
核心模块说明¶
| 模块 | 说明 | 主要功能 |
|---|---|---|
| loadup-dependencies | 依赖管理 BOM | 统一管理所有依赖版本,避免版本冲突 |
| loadup-commons | 通用基础层 | 提供 API 定义、DTO、工具类等基础能力 |
| loadup-components | 技术组件层 | 封装缓存、数据库、调度、追踪等技术组件 |
| loadup-modules | 业务模块层 | 业务功能模块(如 UPMS 用户权限管理) |
| loadup-gateway | API 网关 | 统一路由、认证、鉴权、限流、监控 |
| loadup-application | 应用启动层 | Spring Boot 启动器,整合所有模块 |
| loadup-testify | 测试框架 | 提供完整的测试解决方案(独立模块) |
依赖关系规则¶
遵循严格单向依赖原则,避免循环依赖:
dependencies (基础)
↑
commons (通用层)
↑
components (组件层)
↑
modules (业务模块层)
↑
application (应用层)
gateway (独立) ← → commons, components
testify (独立测试框架)
详细架构设计请查看:📖 架构设计文档
🎯 快速开始¶
前置要求¶
- JDK 21+
- Maven 3.6+
- MySQL 8.0+
- Redis 5.0+
第一步:引入 BOM 依赖管理¶
在项目 pom.xml 中添加:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.loadup</groupId>
<artifactId>loadup-dependencies</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
第二步:添加所需组件¶
<dependencies>
<!-- 数据库组件 -->
<dependency>
<groupId>io.github.loadup</groupId>
<artifactId>loadup-components-database</artifactId>
</dependency>
<!-- 缓存组件 -->
<dependency>
<groupId>io.github.loadup</groupId>
<artifactId>loadup-components-cache</artifactId>
</dependency>
<!-- 更多组件... -->
</dependencies>
第三步:启动应用¶
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
完整的快速开始指南:📖 快速开始文档
📦 核心组件¶
Commons 通用基础层¶
提供项目的基础能力和通用工具:
- loadup-commons-api - API 定义、异常体系、常量定义
- loadup-commons-dto - 通用 DTO、分页对象、响应封装
- loadup-commons-util - 工具类库(日期、字符串、JSON 等)
Components 技术组件层¶
可复用的技术组件,开箱即用:
| 组件 | 说明 | 文档 |
|---|---|---|
| Database | 数据库访问(MyBatis-Flex + 审计) | 查看文档 |
| Cache | 缓存管理(Redis + Caffeine) | 查看文档 |
| Authorization | 认证授权(JWT + RBAC) | 查看文档 |
| Tracer | 链路追踪(OpenTelemetry) | 查看文档 |
| Scheduler | 任务调度(Quartz/XXL-Job) | 查看文档 |
| Captcha | 验证码生成 | 查看文档 |
| DFS | 分布式文件存储 | 查看文档 |
| Liquibase | 数据库版本管理 | 查看文档 |
| Extension | 扩展点机制 | 查看文档 |
| Testcontainers | 测试容器集成 | 查看文档 |
更多组件说明:📖 Components 概览
Modules 业务模块层¶
封装业务功能的可复用模块:
- UPMS (User Permission Management System) - 用户权限管理系统
- 用户管理
- 角色管理
- 权限管理
- 组织架构管理
更多模块:📖 Modules 概览
Gateway 网关模块¶
统一的 API 网关,提供:
- ✅ 动态路由配置
- ✅ JWT 认证与鉴权
- ✅ 签名验签机制
- ✅ 限流与熔断
- ✅ 请求转发(HTTP/RPC/SpringBean)
- ✅ 监控与日志
详细文档:📖 Gateway 网关文档
Testify 测试框架¶
独立的测试解决方案:
- 单元测试支持
- 集成测试支持
- Mock 数据生成
- 断言增强
- Testcontainers 集成
详细文档:📖 Testify 测试框架
🛠️ 开发指南¶
AI 辅助开发¶
我们提供了完善的 AI 编码指令,帮助你使用 GitHub Copilot 或 Cursor 快速生成符合项目规范的代码:
代码规范¶
- 遵循阿里巴巴 Java 开发手册
- 使用 Spotless 自动格式化代码
- 代码审查通过 CI/CD 自动检查
最佳实践¶
- 安全:所有密码字段必须
@JsonIgnore,敏感信息脱敏 - 性能:合理使用缓存,避免 N+1 查询问题
- 测试:单元测试覆盖率 ≥ 70%
- 日志:统一使用
@Slf4j,分级记录 - 异常:统一异常处理,使用
BusinessException
🔧 故障排查¶
遇到问题?查看我们的故障排查指南:
- 🔍 常见问题 FAQ
- 🐛 401 认证错误修复
- 💡 快速修复指南
📖 完整文档导航¶
入门指南¶
📚 文档导航¶
核心文档¶
- 项目规划与路线图 - 项目发展规划、技术演进、业务模块规划
- Dependencies 依赖管理
- Commons 通用层
- Components 组件层
- Modules 业务模块
- Gateway 网关
- Application 应用层
- Testify 测试框架
开发者资源¶
🤝 参与贡献¶
我们欢迎任何形式的贡献!
- 🐛 提交 Bug 报告
- 💡 提出新功能建议
- 📖 改进文档
- 🔧 提交代码 Pull Request
详细贡献指南请查看项目的 CONTRIBUTING.md 文件。
📄 许可证¶
LoadUp Framework 采用 Apache License 2.0 开源协议。
📞 联系我们¶
由 LoadUp Team 用 ❤️ 构建