在本文中,我们将探索 Spring Boot 中的响应式编程。响应式编程是一种异步的、非阻塞的编程范式,用于开发能够对外部刺激做出高度响应的应用程序。
什么是响应式编程
- 在响应式编程中,数据的流动是异步的,这是通过基于推送的发布者和订阅者来实现的,而不是像传统的同步拉取调用那样。
- 响应式编程的核心抽象是响应式流,它提供了一种处理异步数据流的标准方式。响应式流有两个主要接口:Publisher(发布者)和 Subscriber(订阅者)。
- 发布者会异步地将数据推送给订阅者。订阅者注册回调函数,当新数据到达时会收到通知,而不需要主动去轮询查询。
- 响应式流的例子包括 Spring WebFlux 中的 Mono 和 Flux。Mono 表示单个事件/值,而 Flux 表示包含多个值的数据流。
Spring WebFlux 响应式编程的优势
- 支持响应式类型
- 与响应式流集成
- 支持非阻塞 I/O
- 友好支持微服务架构
Spring WebFlux 依赖
Gradle:
dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-webflux‘
}
Maven:
org.springframework
spring-webflux
6.1.3
Spring WebFlux 中的响应式类型
- Mono: Mono 具体表示只有一个值或者根本没有值。
- Flux: Flux 表示一个随时间发出的包含零个或多个元素的流。
分步实现指南
第一步:建立一个新的 Spring MVC 项目
在你喜欢的集成开发环境(IDE)(例如 IntelliJ、Eclipse 或 Spring Tool Suite)中创建一个新的 Maven 项目,并添加以下依赖项。
- Spring Webflux
- Mongo Db – 用于数据库
- Lombok
XML
CODEBLOCK_1dddf858
项目结构:
第二步:配置 Mongo Db 数据库
# MongoDB properties
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=student_management
- host: host 属性指定了 MongoDB 服务器的主机名或 IP 地址。在这个例子中,我们使用的是 localhost。
- port: 属性定义了 MongoDB 服务器正在运行的端口号。在这个例子中,我们将服务器运行在端口号 27017 上。