# frame_parent **Repository Path**: therefore-and/frame_parent ## Basic Information - **Project Name**: frame_parent - **Description**: 后端搭建 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-12-02 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Frame Parent - 企业级后端开发脚手架 ## 项目简介 Frame Parent 是一个基于 Spring Boot 3.x 的企业级后端开发脚手架,提供了完整的基础设施和开箱即用的功能模块,帮助开发者快速构建高质量的企业应用。 ### 核心特性 - 🚀 基于 Spring Boot 3.4.5 + JDK 21,拥抱最新技术栈 - 🔐 完善的权限管理体系(RBAC 模型) - 📦 模块化设计,高内聚低耦合 - 🛠️ 开箱即用的基础设施(Redis、MyBatis-Plus、Security) - 📝 完善的代码生成器,提升开发效率 - 🔄 支持多数据源动态切换 - 📊 集成 Druid 监控,实时掌握数据库性能 - 🎯 统一异常处理和响应格式 ## 技术栈 ### 后端框架 | 技术 | 版本 | 说明 | |--------------------|---------|-----------| | Spring Boot | 3.4.5 | 应用框架 | | Spring Security | 6.x | 安全框架 | | MyBatis-Plus | 3.5.8 | ORM 框架 | | Dynamic Datasource | 4.3.1 | 多数据源 | | Redisson | 3.x | Redis 客户端 | | Druid | 1.2.23 | 数据库连接池 | | Knife4j | 4.x | API 文档 | | Hutool | 5.8.26 | 工具类库 | | MapStruct | 1.6.2 | 对象映射 | | Lombok | 1.18.34 | 简化代码 | ### 数据库 - MySQL 8.0+ - Redis 5.0+ ### 开发工具 - JDK 21 - Maven 3.8+ - Git ## 项目结构 ``` frame_parent/ ├── frame-dependencies/ # 依赖版本管理(BOM) ├── frame-framework/ # 框架层 │ ├── module-common/ # 通用模块(工具类、常量、异常等) │ ├── frame-spring-boot-starter-mybatis/ # MyBatis 增强 │ ├── frame-spring-boot-starter-redis/ # Redis 缓存 │ ├── frame-spring-boot-starter-security/ # 安全认证 │ ├── frame-spring-boot-starter-web/ # Web 增强 │ └── frame-spring-boot-starter-test/ # 测试支持 ├── frame-module-infra/ # 基础设施模块 │ ├── frame-module-infra-api/ # 基础设施 API │ └── frame-module-infra-server/ # 基础设施实现 ├── frame-module-system/ # 系统管理模块 │ ├── frame-module-system-api/ # 系统 API │ └── frame-module-system-server/ # 系统实现 └── frame-server/ # 应用启动模块 ``` ## 模块说明 ### frame-dependencies 依赖版本统一管理模块,采用 BOM(Bill of Materials)方式管理所有第三方依赖版本,确保版本一致性。 ### frame-framework 框架层,提供各种开箱即用的 Starter: - **module-common**:通用工具类、常量、枚举、异常定义 - **frame-spring-boot-starter-mybatis**:MyBatis-Plus 增强,提供通用 Mapper、字段自动填充、多数据源等 - **frame-spring-boot-starter-redis**:Redis 缓存支持,提供 RedisTemplate、缓存注解等 - **frame-spring-boot-starter-security**:Spring Security 集成,提供认证、授权、Token 验证等 - **frame-spring-boot-starter-web**:Web 增强,提供统一响应、异常处理、参数校验等 - **frame-spring-boot-starter-test**:测试支持 ### frame-module-infra 基础设施模块,提供文件存储、短信、邮件等基础服务。 ### frame-module-system 系统管理模块,提供用户、角色、权限、菜单、部门、字典等核心功能。 ### frame-server 应用启动模块,整合所有模块,提供统一的启动入口。 ## 快速开始 ### 环境要求 - JDK 21+ - Maven 3.8+ - MySQL 8.0+ - Redis 5.0+ ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/your-repo/frame_parent.git cd frame_parent ``` 2. **创建数据库** ```sql CREATE DATABASE `frame-pro` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 3. **导入数据库脚本** ```bash # 执行 SQL 脚本 mysql -u root -p frame-pro < script/sql/init.sql ``` 4. **修改配置文件** 编辑 `frame-server/src/main/resources/application-local.yaml`: ```yaml spring: datasource: dynamic: datasource: master: url: jdbc:mysql://localhost:3306/frame-pro?useSSL=false&serverTimezone=Asia/Shanghai username: root password: your-password data: redis: host: localhost port: 6379 password: your-redis-password ``` 5. **启动项目** ```bash # 方式一:Maven 启动 mvn clean install cd frame-server mvn spring-boot:run # 方式二:IDE 启动 # 直接运行 frame-server 模块的 Application 主类 ``` 6. **访问应用** - 后端接口:http://localhost:1205 - API 文档:http://localhost:1205/doc.html - Druid 监控:http://localhost:1205/druid ### 默认账号 - 管理员:admin / admin123 ## 核心功能 ### 用户管理 - 用户列表、新增、编辑、删除 - 用户角色分配 - 用户状态管理 - 密码重置 ### 角色管理 - 角色列表、新增、编辑、删除 - 角色权限分配 - 角色数据权限 ### 菜单管理 - 菜单列表、新增、编辑、删除 - 菜单权限配置 - 菜单图标管理 ### 部门管理 - 部门树形结构 - 部门新增、编辑、删除 ### 字典管理 - 字典类型管理 - 字典数据管理 ### 租户管理 - 租户列表、新增、编辑、删除 - 租户套餐管理 ## 开发规范 ### Git 提交规范 #### 分支命名 - **master 分支**:主分支,用于部署到生产环境,需要确保 master 分支的稳定性。master 分支一般由 release 以及 hotfix 分支合并,任何时间都不能直接修改代码 - **develop 分支**:开发分支,始终保持最新完成以及 bug 修复后的代码、用于前后端联调。一般开发新功能时,feature 分支都是基于 develop 分支创建的 - **feature/xxx 分支**:功能分支,用于开发新功能,命名可自行定义,只要以 feature/ 开头,后面加上开发的功能模块名称 - 命名示例:`feature/frame-framework/frame-common/新增功能` - **test 分支**:测试分支,用于测试环境,一般由 develop 分支合并,不建议直接在 test 分支上直接修改代码 - **release/xxx 分支**:预发布分支,UAT 测试阶段使用,一般由 test 或者 hotfix 分支合并,不建议直接在 release 分支上直接修改代码 - **hotfix 分支**:线上出现紧急问题时,需要及时修复,以 master 分支为基线,创建 hotfix 分支。修复完成后,需要合并到 master 分支和 develop 分支 - 命名示例:以 hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似 #### Commit 消息规范 采用 Angular 规范: ``` ():