# SpringBootStudy **Repository Path**: dusw/spring-boot-study ## Basic Information - **Project Name**: SpringBootStudy - **Description**: SpringBoot入门,Mybits-puls的RESTful接口,Mysql和Redis连接,Satoken权限,异常拦截 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-27 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 学习项目 ## 📚 项目简介 本项目是一个基于 Spring Boot 框架的学习实践项目,以《原神》物品管理系统为业务背景,展示了 Spring Boot 主流技术栈的综合应用。项目包含了完整的 RESTful API 开发、数据持久化、缓存管理、权限控制等企业级应用的核心功能。 ## ✨ 主要功能 - **用户认证**:基于 Sa-Token 的轻量级权限认证框架,支持登录验证与权限校验 - **物品管理**:原神物品的增删改查、分页查询、批量操作 - **数据持久化**:使用 MyBatis-Plus 进行数据库操作,简化 SQL 编写 - **缓存服务**:整合 Redis,实现数据缓存、会话管理等 - **异常处理**:全局异常处理器,统一处理业务异常 - **多环境配置**:支持开发环境与生产环境配置分离 ## 🛠 技术栈 | 技术 | 用途 | |------|------| | Spring Boot 3.x | 应用核心框架 | | MyBatis-Plus 3.x | ORM 框架,简化数据库操作 | | Redis | 分布式缓存、Session 存储 | | Sa-Token | 轻量级权限认证框架 | | Lombok | 简化 POJO 类代码 | | Maven | 项目构建管理 | ## 📂 项目结构 ``` src/main/java/com/example/study/ ├── StudyApplication.java # 启动类与基础控制器 ├── common/ │ └── Result.java # 统一响应封装类 ├── config/ │ ├── CosConfig.java # 跨域配置 │ ├── MybatisPlusConfig.java # MyBatis-Plus 配置 │ ├── RedisConfig.java # Redis 配置 │ └── SaTokenConfig.java # Sa-Token 配置 ├── controller/ │ ├── GenshinItemController.java # 物品管理 API │ └── LoginController.java # 登录认证 API ├── entity/ │ └── GenshinItem.java # 物品实体类 ├── handler/ │ ├── GlobalExceptionHandler.java # 全局异常处理 │ └── MyMetaObjectHandler.java # 元对象填充处理器 ├── mapper/ │ └── GenshinItemMapper.java # 物品数据访问层 └── service/ ├── GenshinItemService.java # 物品服务接口 ├── impl/ │ ├── GenshinItemImpl.java # 物品服务实现 │ └── StpInterfaceImpl.java # Sa-Token 权限接口实现 └── RedisUtil.java # Redis 操作工具类 ``` ## 🚀 快速开始 ### 环境要求 - JDK 17 或更高版本 - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ ### 配置说明 项目支持多环境配置,配置文件位于 `src/main/resources/` 目录: | 环境 | 配置文件 | 说明 | |------|----------|------| | 开发环境 | application-dev.yml | 本地开发配置 | | 生产环境 | application-prod.yml | 生产环境配置 | | 主配置 | application.yml | 公共配置入口 | 配置文件中需要修改的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database username: your_username password: your_password data: redis: host: localhost port: 6379 ``` ### 运行项目 ```bash # 克隆项目 git clone https://gitee.com/dusw/spring-boot-study.git # 进入项目目录 cd spring-boot-study # 使用 Maven 启动 ./mvnw spring-boot:run # 或打包后运行 ./mvnw clean package java -jar target/study-*.jar ``` 项目启动后访问:`http://localhost:8080` ## 📡 API 文档 ### 基础接口 | 方法 | 路径 | 说明 | 权限要求 | |------|------|------|----------| | GET | /start/hello | 测试接口 | 无 | | GET | /start | 启动测试 | 无 | | GET | /start/{id} | ID 查询测试 | 无 | | POST | /start | POST 请求测试 | 无 | | PUT | /start/{id} | 更新测试 | 无 | | DELETE | /start/{id} | 删除测试 | 无 | ### 认证接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /login | 用户登录 | | GET | /isLogin | 检查登录状态 | ### 物品管理接口 | 方法 | 路径 | 说明 | 权限要求 | |------|------|------|----------| | GET | /genshin_item | 获取所有物品 | 无 | | GET | /genshin_item/{id} | 获取单个物品 | genshinItem:getById | | GET | /genshin_item/page | 分页查询 | 无 | | POST | /genshin_item | 新增物品 | genshinItem:add | | PUT | /genshin_item | 更新物品 | 无 | | DELETE | /genshin_item/{id} | 删除物品 | 无 | #### 分页查询示例 ``` GET /genshin_item/page?pageNum=1&pageSize=10&name=武器 ``` ## 🧪 测试 项目内置三个测试类,位于 `src/test/java/com/example/study/` 目录: | 测试类 | 功能说明 | |--------|----------| | DBConnectTest | 数据库连接测试 | | RedisTest | Redis 操作测试 | | StudyApplicationTests | 应用上下文与数据访问层测试 | 执行测试: ```bash ./mvnw test ``` ## 📝 业务实体 ### GenshinItem 物品实体 | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 主键ID | | name | String | 物品名称(中文) | | name_en | String | 英文名称 | | name_ja | String | 日文名称 | | item | int | 物品类型 | | star | int | 星级 | | week | int | 刷新周期 | | mhy_url | String | 米哈游链接 | | wiki_url | String | Wiki 链接 | | icon_url | String | 图标地址 | ## 🔐 权限管理 本项目使用 Sa-Token 框架实现权限控制,支持基于注解的权限校验: ```java @SaCheckPermission("genshinItem:add") // 需要 "genshinItem:add" 权限 public Result save(@RequestBody GenshinItem genshinItem) { // ... } ``` 权限实现类 `StpInterfaceImpl` 提供了权限列表和角色列表的获取接口。 ## 📄 许可证 本项目仅供学习研究使用。 ## 👤 作者 - **Dusw** - [Gitee](https://gitee.com/dusw) ## 📦 依赖管理 项目主要依赖配置于 `pom.xml`,核心依赖包括: - Spring Boot Starter Web - MyBatis-Plus Spring Boot Starter - Redis Spring Boot Starter - Sa-Token - Lombok - MySQL Driver - H2 Database(测试用) --- 如有问题或建议,欢迎在 [Gitee Issues](https://gitee.com/dusw/spring-boot-study/issues) 中反馈。