# cherry **Repository Path**: superxcy/cherry ## Basic Information - **Project Name**: cherry - **Description**: 🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒🍒 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cherry 项目 ## 项目介绍 Cherry 是一个基于 Spring Boot 的后端服务项目,提供用户管理相关的 API 接口,包括用户登录、列表查询、添加、更新、删除和分页查询等功能。 ## 技术栈 - **后端框架**: Spring Boot 2.7.18 - **数据库**: MySQL 8.0.32 - **ORM 框架**: MyBatis-Plus 3.5.2 - **缓存**: Redis - **分页插件**: PageHelper 1.4.6 - **工具库**: Hutool 5.8.21 - **构建工具**: Maven - **开发语言**: Java 17 ## 项目结构 ``` cherry/ ├── doc/ # 项目文档 │ ├── docker/ # Docker 相关配置 │ ├── mysql/ # MySQL 数据库脚本 │ └── redis/ # Redis 相关配置 ├── src/ # 源代码 │ ├── main/ # 主要代码 │ │ ├── java/ # Java 源码 │ │ │ └── com/sky/cherry/ # 包路径 │ │ │ ├── common/ # 公共组件 │ │ │ ├── config/ # 配置类 │ │ │ ├── controller/ # 控制器 │ │ │ ├── entity/ # 实体类 │ │ │ ├── mapper/ # Mapper 接口 │ │ │ ├── service/ # 服务层 │ │ │ ├── utils/ # 工具类 │ │ │ └── CherryApplication.java # 应用入口 │ │ └── resources/ # 资源文件 │ │ ├── mapper/ # MyBatis 映射文件 │ │ └── application*.yml # 配置文件 │ └── test/ # 测试代码 ├── target/ # 构建输出 ├── .gitignore # Git 忽略文件 ├── README.md # 项目说明文档 └── pom.xml # Maven 配置文件 ``` ## 核心功能 ### 用户管理 - **登录**: 用户登录接口,返回用户信息 - **列表查询**: 获取所有用户列表 - **添加用户**: 新增用户信息 - **更新用户**: 根据 ID 更新用户信息 - **删除用户**: 根据 ID 删除用户 - **分页查询**: 分页获取用户列表 ### 技术特性 - **多数据源 Redis**: 支持配置多个 Redis 数据源 - **统一响应格式**: 使用 R 类统一 API 响应格式 - **分页支持**: 集成 PageHelper 实现分页功能 - **MyBatis-Plus**: 使用 MyBatis-Plus 简化数据库操作 ## 快速开始 ### 环境要求 - JDK 17 或更高版本 - Maven 3.6 或更高版本 - MySQL 8.0 或更高版本 - Redis 6.0 或更高版本 ### 项目构建 1. **克隆项目** ```bash git clone <项目地址> cd cherry ``` 2. **配置数据库** - 创建名为 `cherry` 的数据库 - 执行 `doc/mysql/001-cherry.sql` 脚本初始化表结构 3. **配置 Redis** - 确保 Redis 服务运行 - 修改 `application-local.yml` 中的 Redis 配置 4. **构建项目** ```bash mvn clean install ``` 5. **运行项目** ```bash mvn spring-boot:run ``` 或使用 IDE 运行 `CherryApplication` 类 ## 配置说明 ### 配置文件 - `application.yml`: 主配置文件,设置应用名称和激活的环境 - `application-local.yml`: 本地开发环境配置 - `application-dev.yml`: 开发环境配置 - `application-test.yml`: 测试环境配置 - `application-prod.yml`: 生产环境配置 ### 主要配置项 - **服务器端口**: `server.port` - **数据库配置**: `spring.datasource.*` - **Redis 配置**: `spring.redis-a.*` 和 `spring.redis-b.*` - **MyBatis-Plus 配置**: `mybatis-plus.*` - **日志配置**: `logging.level.*` - **Bean 打印配置**: `app.print-beans.enabled` ## API 接口文档 ### 用户管理接口 | 接口路径 | 方法 | 功能描述 | 请求体 (JSON) | 响应体 (JSON) | |---------|------|---------|--------------|--------------| | `/user/login` | POST | 用户登录 | `{"username": "xxx", "password": "xxx"}` | `{"code": 200, "msg": "success", "data": {"id": 1, "nickName": "jerry", "phone": "18638883666", "province": "广东省", "city": "深圳市", "street": "粤海街道"}}` | | `/user/list` | GET | 获取用户列表 | N/A | `{"code": 200, "msg": "success", "data": [{"id": 1, "nickName": "jerry", "phone": "18638883666", ...}]}` | | `/user/add` | POST | 添加用户 | `{"nickName": "xxx", "phone": "xxx", ...}` | `{"code": 200, "msg": "success", "data": 1}` | | `/user/updateById` | POST | 更新用户 | `{"id": 1, "nickName": "xxx", "phone": "xxx", ...}` | `{"code": 200, "msg": "success", "data": 1}` | | `/user/deleteById` | GET | 删除用户 | N/A (参数: id) | `{"code": 200, "msg": "success", "data": 1}` | | `/user/listPages` | POST | 分页查询用户 | `{"pageNum": 1, "pageSize": 10, "nickName": "xxx"}` | `{"code": 200, "msg": "success", "data": {"total": 100, "list": [{...}], "pageNum": 1, "pageSize": 10, ...}}` | ## 数据库设计 ### 用户表 (`user`) | 字段名 | 数据类型 | 约束 | 描述 | |-------|---------|------|------| | `id` | `int` | `PRIMARY KEY AUTO_INCREMENT` | 用户 ID | | `nick_name` | `varchar(50)` | `NOT NULL` | 昵称 | | `phone` | `varchar(20)` | `NOT NULL` | 手机号 | | `open_id` | `varchar(50)` | | 微信开放 ID | | `create_time` | `datetime` | `NOT NULL` | 创建时间 | | `login_time` | `datetime` | | 登录时间 | ## 开发指南 ### 代码规范 - 遵循 Spring Boot 项目结构规范 - 使用 Lombok 简化代码 - 使用 MyBatis-Plus 进行数据库操作 - 统一使用 R 类作为 API 响应格式 ### 开发流程 1. 在 `entity` 包中定义实体类 2. 在 `mapper` 包中定义 Mapper 接口 3. 在 `service` 包中定义服务接口和实现 4. 在 `controller` 包中定义控制器和 API 接口 5. 在 `resources/mapper` 中编写 SQL 映射文件 ### 测试 - 在 `src/test` 目录下编写测试用例 - 使用 `mvn test` 运行测试 ## 部署指南 ### 本地部署 1. 确保环境要求满足 2. 配置数据库和 Redis 3. 构建并运行项目 ### Docker 部署 1. 使用 `doc/docker` 目录下的脚本启动 MySQL 和 Redis 2. 构建项目镜像 3. 运行容器 ## 项目维护 ### 日志管理 - 日志配置在 `application-*.yml` 文件中 - 生产环境建议配置日志文件输出 ### 监控 TODO - 可集成 Spring Boot Actuator 进行应用监控 - 可使用 Prometheus + Grafana 进行监控 ## 常见问题 ### 数据库连接失败 - 检查数据库服务是否运行 - 检查数据库连接配置是否正确 - 检查数据库用户权限 ### Redis 连接失败 - 检查 Redis 服务是否运行 - 检查 Redis 连接配置是否正确 - 检查 Redis 密码是否正确 ### API 接口返回错误 - 检查请求参数是否正确 - 检查服务端日志 - 检查数据库和 Redis 状态