# thumb-example **Repository Path**: normalbykai/thumb-example ## Basic Information - **Project Name**: thumb-example - **Description**: 亿级流量点赞系统,用于学习高并发、高性能、高可用、分布式架构 SpringBoot 3 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-13 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Thumb 项目 README ## 项目简介 这是一个基于 Java 的后端服务项目,使用 Spring Boot 框架,包含博客点赞功能的核心实现。该项目主要分为三个模块: - `thumb-common`: 通用工具类、异常处理和响应结构定义。 - `thumb-dao`: 数据库实体类和 MyBatis Mapper 接口。 - `thumb-web`: 控制器、服务接口及其实现类,处理用户请求。 项目依赖 Redis 缓存,支持点赞、取消点赞、心跳检测等功能。 ## 功能特点 - **统一响应结构**:通过 `BaseResponse` 统一返回结果格式。 - **异常处理机制**:通过 `GlobalExceptionHandler` 统一处理异常。 - **Redis 缓存支持**:使用 `RedisUtils` 提供 Redis 操作能力。 - **数据库集成**:使用 MyBatis Plus 实现数据库操作。 - **请求校验**:通过 `DeleteRequest` 和 `DoThumbRequest` 提供参数校验功能。 - **用户登录状态管理**:通过 `UserController` 和 `UserServiceImpl` 实现用户登录和退出。 ## 安装与部署 ### 环境要求 - Java 17 或更高版本 - Maven 3.8 或更高版本 - Redis 6.0 或更高版本 - MySQL 8.0 或更高版本 ### 安装步骤 1. 下载项目: ```bash git clone https://gitee.com/normalcodes/thumb-example cd thumb-example ``` 2. 构建项目: ```bash mvn clean install ``` 3. 配置数据库: - 在 `application.yml` 中配置 MySQL 和 Redis 连接信息。 - 使用 `mysql.sql` 初始化数据库。 4. 启动项目: ```bash cd services/thumb-web mvn spring-boot:run ``` ## 使用说明 ### 接口文档 项目提供 RESTful 接口,可以通过以下方式访问: - **用户接口**:`/user` - `POST /login`: 用户登录 - `GET /logout`: 用户退出 - `GET /get/login`: 获取当前登录用户 - **博客接口**:`/blog` - `GET /get`: 获取博客详情 - `GET /list`: 获取博客列表 - **点赞接口**:`/thumb` - `POST /do`: 点赞 - `POST /undo`: 取消点赞 - **心跳接口**:`/heartbeat` - `GET /get`: 心跳检测 ### 示例 #### 登录用户 ```http POST /user/login?userId=1 ``` #### 点赞博客 ```http POST /thumb/do Content-Type: application/json { "blogId": 1 } ``` #### 获取博客详情 ```http GET /blog/get?blogId=1 ``` ## 异常处理 项目统一使用 `BusinessException` 处理业务异常,通过 `ThrowUtils` 简化异常抛出。 ## 缓存管理 项目使用 Redis 缓存,通过 `RedisUtils` 提供统一的缓存操作工具。 ## 数据库结构 - `blog`: 博客表,存储博客信息。 - `user`: 用户表,存储用户信息。 - `thumb`: 点赞记录表,存储用户对博客的点赞记录。 ## 项目结构 ``` services/ ├── thumb-common # 公共类和工具 ├── thumb-dao # 数据库实体和 Mapper └── thumb-web # 控制器、服务和启动类 ``` ## 版本管理 使用 `pom.xml` 管理模块依赖关系,确保不同模块之间的版本一致性。 ## 贡献指南 欢迎提交 Issue 和 Pull Request,详细说明请参考项目文档。