# base **Repository Path**: oneto7/base ## Basic Information - **Project Name**: base - **Description**: 基础框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-09 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 SpringBoot 4 + JDK 21 企业级基础开发框架 ## 项目简介 这是一个基于 SpringBoot 4 + JDK 21 的企业级基础开发框架,整合了 MyBatis-Plus、Swagger/Knife4j、MySQL 8、Redis、RabbitMQ 等主流技术组件,提供统一接口文档自动生成、全局异常捕获与标准化返回、用户-角色-菜单-接口四维 RBAC 权限管控等企业级功能。 ## 技术栈 - **Spring Boot 4.0.0** - 应用程序核心框架 - **JDK 21** - Java 开发环境 - **MyBatis-Plus 3.5.5** - 持久层框架 - **MySQL 8.0.33** - 数据库 - **Redis 7.x** - 缓存系统 - **Redisson 3.32.0** - 分布式锁 - **RabbitMQ** - 消息队列 - **Swagger/Knife4j 4.5.0** - API 文档 - **Nacos 2023.0.1.0** - 配置中心与服务发现 - **Sentinel 2023.0.1.0** - 限流熔断 - **SkyWalking 9.1.0** - 分布式链路追踪 ## 快速开始 ### 1. 环境准备 - JDK 21 - Maven 3.8+ - MySQL 8.0+ - Redis 7.x - RabbitMQ ### 2. 数据库初始化 ```bash # 创建数据库并导入初始数据 mysql -u root -p < docs/database.sql ``` ### 3. 项目配置 修改 `src/main/resources/application-dev.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/base_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false username: root password: your_password ``` ### 4. 启动项目 ```bash # 方式一:使用 Maven mvn spring-boot:run -Dspring-boot.run.profiles=dev # 方式二:打包后运行 mvn clean package java -jar target/base-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev ``` ### 5. 访问应用 - API 文档: http://localhost:8080/doc.html - 应用健康检查: http://localhost:8080/actuator/health ## 核心功能 ### 1. 统一接口返回格式 所有接口返回统一格式: ```json { "code": 200, "message": "操作成功", "data": {} } ``` ### 2. RBAC 权限管控 - 用户-角色-菜单-接口四维权限管控 - 动态权限验证 - 灵活的权限分配 ### 3. 接口限流与熔断 使用 `@RateLimit` 注解实现接口限流: ```java @RateLimit(key = "test_rate_limit", count = 5, time = 60, message = "访问过于频繁,请稍后再试") @GetMapping("/rate-limit") public Result rateLimitTest() { return Result.success("限流测试通过"); } ``` ### 4. 接口幂等性保障 使用 `@Idempotent` 注解实现接口幂等: ```java @Idempotent(key = "test_idempotent", expireTime = 60, message = "请勿重复提交") @PostMapping("/idempotent") public Result idempotentTest() { return Result.success("幂等性测试通过"); } ``` ### 5. 分布式锁 使用 Redisson 实现分布式锁: ```java @Autowired private DistributedLockUtil distributedLockUtil; // 使用分布式锁执行操作 distributedLockUtil.lockAndExecute("lock_key", 10, TimeUnit.SECONDS, () -> { // 需要加锁执行的业务逻辑 }); ``` ## 项目结构 ``` src/ ├── main/ │ ├── java/com/ldq/base/ │ │ ├── common/ # 通用类 │ │ ├── config/ # 配置类 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # 数据访问层 │ │ ├── service/ # 业务逻辑层 │ │ ├── controller/ # 控制器层 │ │ ├── exception/ # 异常处理 │ │ ├── aspect/ # 切面编程 │ │ ├── annotation/ # 注解定义 │ │ └── util/ # 工具类 │ └── resources/ │ ├── application.yml # 主配置文件 │ ├── application-dev.yml # 开发环境配置 │ ├── application-test.yml # 测试环境配置 │ ├── application-prod.yml # 生产环境配置 │ └── logback-spring.xml # 日志配置 └── docs/ ├── database.sql # 数据库脚本 └── 功能文档.md # 详细功能文档 ``` ## 配置说明 ### 多环境配置 - `application-dev.yml` - 开发环境 - `application-test.yml` - 测试环境 - `application-prod.yml` - 生产环境 ### 监控配置 通过 Spring Boot Actuator 提供以下监控端点: - `/actuator/health` - 健康检查 - `/actuator/info` - 应用信息 - `/actuator/metrics` - 指标信息 - `/actuator/env` - 环境变量 ## 扩展开发 ### 添加新模块 1. 创建实体类(继承 BaseEntity) 2. 创建 Mapper 接口(继承 BaseMapper) 3. 创建 Service 接口和实现类 4. 创建 Controller 类 5. 在 RBAC 模型中配置相应权限 ### 自定义注解 参考项目中的 `@RateLimit`、`@Idempotent` 等注解实现。 ## 部署建议 ### 生产环境 - 配置外部数据库连接 - 配置 Redis 和 RabbitMQ 连接 - 配置 Nacos 地址 - 调整 JVM 参数 - 生产环境禁用 Swagger UI ### 安全配置 - 配置 HTTPS - 数据库密码加密存储 - 敏感信息脱敏显示 ## 文档资源 - [详细功能文档](./docs/功能文档.md) - [数据库设计](./docs/database.sql) ## 联系方式 如有问题,请联系项目维护人员。