基于函数式编程模型实现 Spring WebFlux
在使用函数式编程模型时,我们需要自行初始化服务器。
在基于函数式的编程模型中,有两个核心的接口,分别是 RouterFunction 和 HandlerFunction,
其中 RouterFunction 实现了路由功能,将请求转发给对应的 handler,
HandlerFunction 则代表了处理传入请求并生成响应的函数。
在这种编程模型中,我们的核心任务就是定义这两个函数式接口的实现并启动所需的服务器。
在Spring MVC中,代表服务端HTTP请求和响应的两个对象是 ServletRequest 和 ServletRespose,但在 Spring WebFlux 中,代表服务器端HTTP请求和响应的两个对象是 ServerRequest 和 ServerRespose。
1、基于函数式编程模型实现 Spring WebFlux
1、创建Springboot项目,添加相关的依赖
<!--webflux依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>2.6.3</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
2、编写配置文件
server.port=8081
3、编写文件目录结构
实体类:User
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private int age;
}
service层接口:UserService
public interface UserService {
//根据id查询,返回一个或0个使用 Mono
Mono<User> queryById(int id);
//查询所有,返回多个使用 Flux
Flux<User> query();
//添加用户
Mono<Void> insert(Mono<User> user);
}
4、创建 Handler(具体的实现方法)
注意导包的时候,要导入 reactive 下的包
package com.haoming.handler;
import com.haoming.entity.User;
import com.haoming.service.UserService;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerRe

本文介绍了如何使用SpringWebFlux的函数式编程模型来实现Web服务,包括创建项目、配置、定义HandlerFunction和RouterFunction,以及启动服务器。同时,文章还展示了如何利用WebClient进行非阻塞的HTTP请求,实现客户端调用。
最低0.47元/天 解锁文章
7182

被折叠的 条评论
为什么被折叠?



