# fastBoot **Repository Path**: yunnuo520/fast-boot ## Basic Information - **Project Name**: fastBoot - **Description**: jdk11+springboot脚手架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-10 - **Last Updated**: 2025-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastBoot 项目 FastBoot 是一个基于 Spring Boot 的脚手架项目,集成了权限框架 Spring Security 和 JWT 认证,提供了一套完整的用户认证和授权解决方案。 ## 技术栈 - Spring Boot 2.7.6 - Spring Security - JWT (JSON Web Token) - MyBatis Plus 3.5.2 - MySQL ## 项目结构 ``` fast-boot/ ├── src/main/java/vip/ebox/fastboot/ │ ├── common/ # 通用模块 │ │ ├── api/ # API 响应相关 │ │ ├── config/ # 配置类 │ │ ├── domain/ # 领域模型 │ │ ├── exception/ # 全局异常处理 │ │ └── utils/ # 工具类 │ ├── security/ # 安全模块 │ │ ├── controller/ # 安全相关控制器 │ │ ├── dto/ # 数据传输对象 │ │ ├── mapper/ # 数据访问层 │ │ └── * # 安全相关核心类 │ └── FastBootApplication.java # 启动类 ├── src/main/resources/ │ ├── db/ # 数据库脚本 │ └── application.yml # 应用配置 ``` ## 核心功能 ### 1. 用户认证 - 用户注册 `/api/auth/register` - 用户登录 `/api/auth/login` - 基于 JWT 的认证 ### 2. 权限控制 - 基于角色的访问控制 (RBAC) - 支持多角色管理 - 使用注解 `@PreAuthorize` 进行权限控制 ### 3. 统一响应格式 所有 API 返回统一的 `ResultInfo` 格式: ```json { "code": "200", "msg": "操作成功", "total": 0, "data": {} } ``` ### 4. 全局异常处理 通过 `GlobalExceptionHandler` 处理各类异常,并返回统一格式的响应。 ## 快速开始 ### 1. 环境要求 - JDK 11+ - MySQL 5.7+ - Maven 3.6+ ### 2. 数据库配置 编辑 `application-dev.yml` 文件,配置数据库连接: ```yaml spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver username: your_username password: your_password url: jdbc:mysql://localhost:3306/fast_boot?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true ``` ### 3. 启动项目 ```bash # 创建数据库 mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS fast_boot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 启动应用 mvn spring-boot:run ``` 项目将在 http://localhost:58080/api 上运行。 ### 4. 接口测试 #### 用户注册 ```bash curl -X POST http://localhost:58080/api/auth/register \ -H "Content-Type: application/json" \ -d '{"username":"test","password":"123456","nickname":"测试用户"}' ``` #### 用户登录 ```bash curl -X POST http://localhost:58080/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"test","password":"123456"}' ``` 登录成功后将返回 JWT token,后续请求需要在 Header 中携带: ```bash curl -X GET http://localhost:58080/api/test/user \ -H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.xxx" ``` ## 测试接口 - 公开接口:`/api/test/all` - 用户角色接口:`/api/test/user` - 管理员角色接口:`/api/test/admin` ## 默认用户 系统初始化会自动创建一个管理员账号: - 用户名:admin - 密码:admin123 > **重要提示**:如果初始的admin账号登录失败,请尝试按照以下步骤操作: > 1. 确保fast_boot数据库已创建 > 2. 删除所有表并重新启动应用,让应用自动执行初始化脚本 > 3. 或者手动执行`src/main/resources/db/security_tables.sql`脚本 ## 安全配置 JWT 相关配置在 `application.yml` 中: ```yaml jwt: secret: fastboot-jwt-secret-key expiration: 86400 tokenPrefix: "Bearer " header: Authorization ``` ## 注意事项 1. 生产环境中请修改 JWT 密钥 2. 接口权限可以根据业务需求在控制器中添加 `@PreAuthorize` 注解进行控制 3. 数据库初始化脚本位于 `src/main/resources/db/security_tables.sql` ## 扩展开发 ### 添加新角色 1. 在数据库中添加角色记录 2. 关联用户和角色 3. 使用 `@PreAuthorize("hasRole('NEW_ROLE')")` 注解控制访问权限 ### 添加新权限 可以扩展权限表和角色权限关联表,实现更细粒度的权限控制。 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/new-feature`) 3. 提交更改 (`git commit -am 'Add new feature'`) 4. 推送分支 (`git push origin feature/new-feature`) 5. 创建 Pull Request