# TestReactor **Repository Path**: big_roc_admin/TestReactor ## Basic Information - **Project Name**: TestReactor - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-12 - **Last Updated**: 2025-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TestReactor 项目 基于 Spring Boot WebFlux 和 Reactor 3 的响应式编程示例项目。 ## 项目简介 TestReactor 是一个使用 Spring Boot WebFlux 构建的响应式 Web 应用程序示例。该项目演示了如何使用 Reactor 3 进行响应式编程,包括 Flux 和 Mono 的使用、响应式数据处理、分页功能实现等。 项目参考了 [使用 Reactor 3 进行响应式编程](https://www.cnblogs.com/bigroc/collections/33689) 系列教程,实现了其中的核心概念和实践方法。 ## 技术栈 - **Spring Boot 3.5.7** - **Spring WebFlux** - 响应式 Web 框架 - **Reactor 3.8.0** - 响应式编程库 - **R2DBC** - 响应式数据库连接 - **PostgreSQL** - 关系型数据库 - **Flyway** - 数据库迁移工具 - **Lombok** - 简化 Java 代码 - **Maven** - 项目构建工具 ## 功能特性 ### 1. 响应式用户管理 - 用户信息的增删改查操作 - 响应式数据流处理 - 响应式 Repository 实现 ### 2. 分页功能 - 业务友好的分页(页码从1开始) - 统一分页参数封装 - 分页结果封装 ### 3. 数据库迁移 - 使用 Flyway 管理数据库版本 - 自动执行数据库迁移脚本 - 数据库表结构和注释管理 ## 项目结构 ``` src/ ├── main/ │ ├── java/ │ │ └── com/qinrenjihe/ │ │ ├── TestReactorApplication.java # 应用启动类 │ │ ├── common/ # 通用类 │ │ │ ├── PageResult.java # 分页结果封装 │ │ │ ├── PageableRequest.java # 分页请求参数 │ │ │ └── ResponseResult.java # 响应结果封装 │ │ ├── controller/ # 控制层 │ │ │ └── UserController.java # 用户控制器 │ │ ├── entity/ # 实体类 │ │ │ └── User.java # 用户实体 │ │ ├── repo/ # 数据访问层 │ │ │ ├── ReactiveRepository.java # 响应式仓库接口 │ │ │ ├── UserRepo.java # 用户仓库接口 │ │ │ └── impr/ # 实现类 │ │ │ └── ReactiveUserRepository.java │ │ ├── service/ # 服务层 │ │ │ └── UserService.java # 用户服务 │ │ └── test/ # Reactor 学习示例 │ │ ├── Part01Flux.java │ │ ├── Part02Mono.java │ │ ├── Part03StepVerifier.java │ │ ├── Part04Transform.java │ │ ├── Part05Merge.java │ │ ├── Part06Request.java │ │ ├── Part07Errors.java │ │ └── Part09Adapt.java │ └── resources/ │ ├── db/migration/ # 数据库迁移脚本 │ │ ├── V0.0.1__Init.sql # 初始化脚本 │ │ └── V0.0.2__Add_comments_to_users_table.sql # 添加注释脚本 │ └── application.yml # 应用配置文件 └── test/ ├── Part01FluxTest.java ├── Part02MonoTest.java ├── Part03StepVerifierTest.java ├── Part04TransformTest.java ├── Part05MergeTest.java ├── Part06RequestTest.java ├── Part07ErrorsTest.java └── Part09AdaptTest.java ``` ## 快速开始 ### 环境要求 - Java 21+ - Maven 3.6+ - PostgreSQL 数据库 ### 配置数据库 在 `src/main/resources/application.yml` 中配置数据库连接信息: ```yaml spring: r2dbc: url: r2dbc:postgresql://localhost:5432/test username: postgres password: postgres ``` ### 构建和运行 ```bash # 克隆项目 git clone <项目地址> # 进入项目目录 cd TestReactor # 编译项目 mvn clean compile # 运行项目 mvn spring-boot:run ``` ## API 接口 ### 用户管理接口 | 接口 | 方法 | 路径 | 描述 | |------|------|------|------| | 获取用户 | GET | `/users/{id}` | 根据 ID 获取用户信息 | | 获取所有用户 | GET | `/users/all` | 获取所有用户列表 | | 获取用户数量 | GET | `/users/count` | 获取用户总数 | | 分页获取用户 | GET | `/users` | 分页获取用户列表 | ### 分页参数说明 分页接口支持以下参数: - `page`: 页码(从1开始,默认为1) - `size`: 每页大小(默认为10) 示例请求:`GET /users?page=1&size=10` ## 数据库设计 ### 用户表 (users) | 字段名 | 类型 | 约束 | 描述 | |--------|------|------|------| | user_id | BIGINT | PRIMARY KEY | 用户唯一标识符 | | username | VARCHAR(255) | NOT NULL, UNIQUE | 用户登录名 | | firstname | VARCHAR(255) | NOT NULL | 用户名字 | | lastname | VARCHAR(255) | NOT NULL | 用户姓氏 | ## 学习资源 本项目参考了以下学习资源: - [使用 Reactor 3 进行响应式编程](https://www.cnblogs.com/bigroc/collections/33689) - 系列教程 ## 许可证 本项目仅供学习和参考使用。