# springboot **Repository Path**: gamesgong/springboot ## Basic Information - **Project Name**: springboot - **Description**: springboot 企业级项目示例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-06 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot Druid 项目使用手册 ## 项目简介 这是一个基于Spring Boot的简单应用,旨在集成MyBatis与JDBC,并使用MySQL数据库进行数据持久化操作。项目提供了一个可扩展的基础架构,用于连接数据库、执行SQL操作,并支持MyBatis ORM框架。 ## 技术栈 - 后端框架:Spring Boot 3.5.4 - 数据库:MySQL - ORM框架:MyBatis 3.0.5 - 连接池:Druid - 安全框架:Spring Security + JWT - API文档:Swagger - 构建工具:Maven - Java版本:Java 17 ## 功能特性 1. 提供Spring Boot Web基础服务 2. 集成JDBC和MyBatis,支持数据库访问 3. 支持MySQL数据库连接与操作 4. 实现基于JWT的用户认证和授权 5. 提供RESTful API接口 6. 集成Swagger API文档 7. 支持国际化消息处理 8. 实现RBAC(基于角色的访问控制)权限模型 ## 项目结构 ``` src/main/java/games/gong/durid/ ├── SpringbootDuridApplication.java # 主应用启动类 ├── aop/ # AOP切面相关 │ └── LoggingAspect.java # 日志记录切面 ├── common/ # 通用类 │ └── R.java # 统一响应格式 ├── config/ # 配置类 │ ├── SecurityConfig.java # Spring Security配置 │ ├── JwtAuthenticationEntryPoint.java # JWT认证入口点 │ ├── JwtRequestFilter.java # JWT请求过滤器 │ ├── SwaggerConfig.java # Swagger配置 │ └── LocaleConfig.java # 国际化配置 ├── controller/ # 控制器层 │ ├── AuthController.java # 认证控制器 │ ├── UserController.java # 用户管理控制器 │ ├── RoleController.java # 角色管理控制器 │ ├── PermissionController.java # 权限管理控制器 │ ├── PublicController.java # 公共接口控制器 │ └── LoginController.java # 登录页面控制器 ├── entity/ # 实体类 │ ├── AuthRequest.java # 认证请求实体 │ ├── AuthResponse.java # 认证响应实体 │ ├── User.java # 用户实体 │ ├── Role.java # 角色实体 │ ├── Permission.java # 权限实体 │ ├── UserRole.java # 用户角色关联实体 │ └── RolePermission.java # 角色权限关联实体 ├── exception/ # 异常处理 │ └── GlobalExceptionHandler.java # 全局异常处理器 ├── mapper/ # MyBatis Mapper接口 │ └── UserMapper.java # 用户Mapper接口 ├── service/ # 服务层 │ ├── UserService.java # 用户服务实现 │ ├── RoleService.java # 角色服务接口 │ └── PermissionService.java # 权限服务接口 └── util/ # 工具类 ├── JwtUtil.java # JWT工具类 ├── MessageUtil.java # 国际化消息工具 └── SecurityUtil.java # 安全工具类 ``` ## 环境要求 - JDK 17 或更高版本 - Maven 3.x - MySQL数据库 ## 安装与配置 ### 1. 克隆项目 ```bash git clone <项目地址> cd springboot-durid ``` ### 2. 数据库配置 在 `src/main/resources/application.yml` 中修改数据库连接配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/springboot-durid?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: your_username password: your_password ``` ### 3. 安装依赖 ```bash mvn install ``` ### 4. 运行项目 ```bash mvn spring-boot:run ``` 或者在IDE中运行 [SpringbootDuridApplication.java](file:///C:/workSapceTest/springboot/project/springboot-durid/src/main/java/games/gong/durid/SpringbootDuridApplication.java)。 ## API接口文档 项目集成了Swagger,可以通过以下地址访问API文档: - Swagger UI界面:http://localhost:8080/swagger-ui.html - OpenAPI JSON格式:http://localhost:8080/v3/api-docs ## 认证与授权 项目使用基于JWT的认证机制和RBAC权限模型: ### 认证流程 1. 用户通过 `/api/auth/login` 接口进行登录 2. 系统验证用户凭证,生成JWT令牌 3. 客户端在后续请求的 `Authorization` 头中携带JWT令牌 ### 默认用户 - 普通用户:用户名 `user`,密码 `password`,角色:USER - 管理员用户:用户名 `admin`,密码 `admin`,角色:USER, ADMIN ### 权限控制 - USER角色可以访问用户管理相关接口 - ADMIN角色可以访问角色管理、权限管理接口 - ADMIN角色可以访问Druid监控界面 ## 国际化支持 项目支持多语言,目前包含: - 中文(默认) - 英文 通过修改浏览器语言设置或在请求中添加 `Accept-Language` 头来切换语言。 ## 数据库设计 项目使用MySQL数据库,初始化时会自动创建以下表结构: ```sql -- 用户表 CREATE TABLE IF NOT EXISTS user ( id BIGINT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL, email VARCHAR(100), create_time DATETIME, update_time DATETIME ); -- 角色表 CREATE TABLE IF NOT EXISTS role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, description VARCHAR(200), create_time DATETIME, update_time DATETIME ); -- 权限表 CREATE TABLE IF NOT EXISTS permission ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, description VARCHAR(200), resource VARCHAR(100), action VARCHAR(50), create_time DATETIME, update_time DATETIME ); -- 用户角色关联表 CREATE TABLE IF NOT EXISTS user_role ( id BIGINT AUTO_INCREMENT PRIMARY KEY, user_id BIGINT NOT NULL, role_id BIGINT NOT NULL, create_time DATETIME ); -- 角色权限关联表 CREATE TABLE IF NOT EXISTS role_permission ( id BIGINT AUTO_INCREMENT PRIMARY KEY, role_id BIGINT NOT NULL, permission_id BIGINT NOT NULL, create_time DATETIME ); ``` ## 日志记录 项目配置了日志记录功能,日志文件位于 `logs/app.log`。 ## Druid监控 可以通过以下地址访问Druid监控界面: - 监控地址:http://localhost:8080/druid/ - 默认用户名:admin - 默认密码:admin ## 测试 项目包含基本的单元测试,可以通过以下命令运行: ```bash mvn test ``` ## 构建与部署 ### 构建项目 ```bash mvn clean package ``` ### 运行打包后的应用 ```bash java -jar target/springboot-durid-0.0.1-SNAPSHOT.jar ``` ## 开发规范 1. 使用统一的API响应格式 [R.java](file:///C:/workSapceTest/springboot/project/springboot-durid/src/main/java/games/gong/durid/common/R.java) 2. 所有时间字段由服务端生成,不应由客户端传递 3. 使用JSR-303注解进行参数验证 4. 使用RBAC模型进行权限控制 5. 使用AOP进行日志记录 6. 密码使用BCrypt加密存储 ## 常见问题 1. **数据库连接失败**:检查数据库服务是否启动,连接参数是否正确 2. **API文档无法访问**:检查应用是否正常启动,端口是否被占用 3. **权限认证失败**:确认用户名密码是否正确,用户是否具有相应角色 4. **JWT令牌过期**:重新登录获取新的令牌 ## 联系方式 如有问题,请联系项目维护人员。