响应式编程WebFlux——学习

Spring Webflux

Reactor核心:HttpHandle原生API
DispatcherHandler原理:

WebFlux:底层完全基于netty+reactor+springweb完成一个全异步非阻塞的web响应式框架
底层:异步 + 消息队列(内存) + 事件回调机制 = 整套系统
优点:能使用少量资源处理大量请求
在这里插入图片描述

Mono:返回0|1数据流
Flux:返回N数据流

1、WebFlux

底层基于Netty实现的Web容器与请求/响应处理机制,详情可看官网
在这里插入图片描述

(1)、引入(导入依赖)

以前:浏览器–>Controller–>Service–>Dao:阻塞式编程
现在:Dao(数据源查询对象)–>Service–>Controller–>浏览器:响应式

(2)、最原生的方式

// 快速编写一个能处理请求的服务器
// 1、创建一个能处理Http请求的处理器
HttpHandler handler = (ServerHttpRequest request,
							ServerHttpRespnse response)->{
	System.out.prinln("请求进来" + request.getURI());
	//编写请求处理的业务,给浏览器编写一个内容URL
	// return Mono.empty();
}
// 2、启动一个服务器,监听8080端口,接受数据,拿到数据交给 HttpHandler 进行请求处理
ReactorHttpHandlerAdapter adapter = new ReactorHttpHandlerAdapter(handler);
// 3、启动netty服务器
HttpServer.create()
		.host("localhost")
		.port(8080)
		.handler(adapter) //用指定的处理器处理请求
		.bindNow(); //现在就绑定
		
System.out.println("服务器启动完成...监听8080,接受请求");
System.in.read();
System.out.println("服务器停止...");

(3)、DispatcherHandler

webFlux:向下兼容原来SpringMVC的大多数注解和API
在这里插入图片描述
SpringMVC 以前怎么用,基本可以无缝切换
底层:需要自己编写响应式编码
在这里插入图片描述

在这里插入图片描述
注解开发
1、目标开发传参

ControllerDescription
ServerWebExchange封装了请求和响应对象的对象;自定义获取数据、自定义响应
ServerHttpRequest、ServerHttpResponse请求、响应
WebSession访问Session对象
org.spring.framework.http.HttpMethod请求方式
@PathVariable路径变量
@MatrixVariable矩阵变量
@RequesParam请求参数
@RequestHeader请求头
@CookieValue获取Cookie
@RequestBody获取请求体、Post、文件上传
HttpEntity<>封装后的请求对象

Rendering 新版的页面跳转API,不能标注@ResponseBody注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协奏曲❤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值