# springboot-task7 **Repository Path**: ruirain/springboot-task7 ## Basic Information - **Project Name**: springboot-task7 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-06 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot Redis 缓存技术演示项目 ## 项目概述 本项目使用 Spring Boot + Redis 技术栈,实现用户信息查询的缓存功能,通过实践观察缓存命中与失效行为,深入理解 Redis 缓存机制在 Spring Boot 应用中的应用方式。 ## 技术栈 | 分类 | 技术 | 版本 | | :--- | :--- | :--- | | 语言 | Java | 21 | | 框架 | Spring Boot | 3.2.x | | 缓存 | Redis | 7.0+ | | 数据库 | MySQL | 8.0+ | | ORM | Spring Data JPA | 3.2.x | | 模板引擎 | Thymeleaf | 3.1.x | ## 环境要求 - JDK 21+ - Maven 3.8+ - Redis 7.0+ - MySQL 8.0+ ## 启动步骤 ### 1. 启动 Redis 服务 ```bash redis-server ``` ### 2. 创建数据库 ```sql CREATE DATABASE IF NOT EXISTS springboot_redis_db; ``` ### 3. 配置数据库连接 修改 `src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/springboot_redis_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true username: root password: root ``` ### 4. 运行 Spring Boot 应用 ```bash mvn spring-boot:run ``` ### 5. 访问前端页面 打开浏览器访问: http://localhost:8080/users ## API 接口 | API 路径 | HTTP 方法 | 功能描述 | | :--- | :--- | :--- | | /api/users/{id} | GET | 根据 ID 查询单个用户(带缓存) | | /api/users | GET | 查询所有用户列表(带缓存) | | /api/users | POST | 新增用户 | | /api/users/{id} | PUT | 更新用户信息 | | /api/users/{id} | DELETE | 删除用户 | | /users | GET | 用户管理首页 | ## 缓存策略 | 操作 | 注解 | 缓存键 | | :--- | :--- | :--- | | 查询单个用户 | @Cacheable | user::id | | 查询所有用户 | @Cacheable | users::all | | 新增用户 | @CacheEvict | users::all | | 更新用户 | @CachePut + @CacheEvict | user::id, users::all | | 删除用户 | @CacheEvict | user::id, users::all | ## 测试用例 | 测试场景 | 测试步骤 | 预期结果 | | :--- | :--- | :--- | | 首次查询缓存未命中 | 启动应用,调用 GET /api/users/1 | 日志显示缓存未命中,查询数据库 | | 重复查询缓存命中 | 再次调用 GET /api/users/1 | 日志显示缓存命中,直接返回缓存数据 | | 更新用户缓存更新 | 调用 PUT /api/users/1 更新用户 | 查询用户时获取更新后的数据 | | 删除用户缓存清除 | 调用 DELETE /api/users/1 | 再次查询返回 404 | ## 项目结构 ``` src/ ├── main/ │ ├── java/com/example/app/ │ │ ├── Application.java # 启动类 │ │ ├── config/ │ │ │ ├── RedisConfig.java # Redis缓存配置 │ │ │ └── GlobalExceptionHandler.java # 全局异常处理 │ │ ├── controller/ │ │ │ ├── UserController.java # REST API控制器 │ │ │ └── UserPageController.java # 页面控制器 │ │ ├── service/ │ │ │ └── UserService.java # 业务逻辑层(带缓存注解) │ │ ├── repository/ │ │ │ └── UserRepository.java # 数据访问层 │ │ ├── entity/ │ │ │ └── User.java # 用户实体类 │ │ └── dto/ │ │ ├── UserDTO.java # 用户数据传输对象 │ │ └── UserRequest.java # 请求对象 │ └── resources/ │ ├── application.yml # 应用配置 │ └── templates/ │ └── users/ │ └── index.html # 用户管理首页 ```