# SpringDemo **Repository Path**: aluvfy/SpringDemo ## Basic Information - **Project Name**: SpringDemo - **Description**: SpringBoot User CRUD Demo | 规范架构 | 统一响应 | 全局异常,一个用于学习 SpringBoot 规范开发的用户管理项目。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-23 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Spring, MySQL, Maven ## README # SpringBoot User CRUD Demo 一个基于 SpringBoot 框架实现的用户信息**增删改查 (CRUD)** 演示项目。本项目清晰地展示了 SpringBoot Web 开发的核心流程与分层架构,是学习 SpringBoot 的绝佳入门范例。 ## 🚀 技术栈 - **后端框架**: Spring Boot 2.x - **项目管理**: Maven - **Java版本**: 8+ - **项目结构**: 严格遵循 MVC 分层架构 - **数据库**: MySQL ## 📁 项目结构 ``` SpringDemo/ ├── src/ │ └── main/ │ └── java/ │ └── com/aluvfy/springdemo/ │ ├── SpringDemoApplication.java # 项目启动类 │ ├── controller/ │ │ └── UserController.java # 控制层 - 接收请求 │ ├── service/ │ │ ├── IUserService.java # 服务层接口 │ │ └── UserService.java # 服务层实现类 │ ├── repository/ │ │ └── UserRepository.java # 数据访问层 │ ├── pojo/ │ │ ├── User.java # 用户实体类 │ │ ├── UserDto.java # 数据传输对象 │ │ └── ResponseMessage.java # 统一响应封装 │ └── exception/ │ └── GlobalExceptionHandleAdvice.java # 全局异常处理 ├── resources/ │ ├── application.properties # 应用配置文件 │ ├── static/ # 静态资源 (如 CSS, JS) │ └── templates/ # 模板文件 (如 Thymeleaf) └── pom.xml # Maven 依赖配置 ``` ## 💡 核心功能 本项目实现了对用户信息的完整 CRUD 操作: - **创建 (Create)**: 添加新用户 - **查询 (Read)**: 获取用户列表、根据ID查询单个用户 - **更新 (Update)**: 根据ID修改用户信息 - **删除 (Delete)**: 根据ID删除用户 ## 🛠️ 架构亮点 1. **清晰的分层架构**: Controller -> Service -> Repository,职责分离,便于维护和测试。 2. **统一的响应格式**: 通过 `ResponseMessage` 对象封装所有接口的返回结果,保证前端接收数据格式的一致性。 3. **全局异常处理**: 使用 `@ControllerAdvice` 捕获并处理系统异常,提供友好的错误信息,避免直接暴露堆栈信息。 4. **DTO 数据转换**: 使用 `UserDto` 隔离实体类与前端传输对象,增强安全性与灵活性。 5. **接口与实现分离**: Service 层定义了 `IUserService` 接口,便于后续扩展和 Mock 测试。 ## 🚦 快速开始 ### 环境要求 - JDK 1.8 或更高版本 - Maven 3.6+ - 一个喜欢的 IDE (如 IntelliJ IDEA, Eclipse) ### 运行步骤 1. **克隆项目** ```bash git clone https://gitee.com/your-username/SpringDemo.git ``` 2. **导入项目** 使用 IDEA 或 Eclipse 导入为 Maven 项目。 3. **配置应用** 根据你的环境,修改 `src/main/resources/application.properties` 中的配置(例如:服务器端口 `server.port`)。 4. **启动项目** 运行 `SpringDemoApplication.java` 中的 `main` 方法。 5. **访问应用** 项目启动后,默认访问地址为:`http://localhost:8080` ### API 接口示例 | 方法 | 路径 | 描述 | 参数 | | :--- | :--- | :--- | :--- | | `GET` | `/api/users` | 获取所有用户列表 | 无 | | `GET` | `/api/users/{id}` | 根据ID获取用户 | `id` (路径变量) | | `POST` | `/api/users` | 创建新用户 | `UserDto` (请求体) | | `PUT` | `/api/users/{id}` | 更新用户信息 | `id` (路径变量), `UserDto` (请求体) | | `DELETE` | `/api/users/{id}` | 删除用户 | `id` (路径变量) | #### 请求示例 **创建用户 (POST /api/users)** ```json { "name": "张三", "email": "zhangsan@example.com", "age": 25 } ``` **响应示例** ```json { "code": 200, "message": "操作成功", "data": { "id": 1, "name": "张三", "email": "zhangsan@example.com", "age": 25, "createTime": "2024-01-01T10:00:00" } } ``` ## 📝 核心代码展示 ### UserController.java (部分代码) ```java @RestController @RequestMapping("/api/users") public class UserController { @Autowired private IUserService userService; @GetMapping public ResponseMessage> getAllUsers() { List users = userService.findAll(); return ResponseMessage.success(users); } @PostMapping public ResponseMessage createUser(@RequestBody UserDto userDto) { User user = userService.createUser(userDto); return ResponseMessage.success(user); } } ``` ### GlobalExceptionHandleAdvice.java (部分代码) ```java @ControllerAdvice public class GlobalExceptionHandleAdvice { @ExceptionHandler(Exception.class) @ResponseBody public ResponseMessage handleException(Exception e) { return ResponseMessage.error("系统异常: " + e.getMessage()); } } ``` ## 🧪 测试 项目包含基本的单元测试,运行以下命令执行测试: ```bash mvn test ``` 或者直接在 IDE 中运行 `SpringDemoApplicationTests.java`。 ## 📝 学习总结 通过完成这个项目,我深入理解了: - SpringBoot 项目的初始化和自动配置原理 - Web MVC 模式在 Spring 中的具体实现 - 如何构建一个**鲁棒**的后端应用(通过统一响应和全局异常处理) - 面向接口编程思想在项目结构中的应用 - RESTful API 的设计原则和最佳实践 ## 🔮 后续计划 - [ ] 集成 MySQL 数据库,使用 Spring Data JPA 进行数据持久化 - [ ] 添加参数校验(使用 Hibernate Validator) - [ ] 集成单元测试(JUnit + Mockito) - [ ] 使用 Swagger 生成 API 文档 - [ ] 添加用户身份认证与授权(Spring Security) - [ ] 开发简单的前端页面(使用 Thymeleaf 或 Vue.js) - [ ] 添加日志记录和性能监控 - [ ] 使用 Docker 容器化部署 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。 --- > 注意:这是一个教学演示项目,当前版本数据存储在内存中,重启应用后数据会重置。生产环境使用需连接数据库。 ## 📞 联系信息 - **邮箱**: 2859097652@qq.com - **Gitee**: [你的 Gitee 主页链接] --- 这个完整的 README.md 文件包含了项目的所有重要信息,从技术栈介绍到具体的运行步骤,再到代码示例和未来规划。你可以根据实际项目情况调整其中的细节,特别是 API 接口部分和联系信息部分。