WebFlux快速上手
一、新建项目
示例使用IDEA快速创建基于SpringBoot的工程。
springboot 2.3.1
java 8
WebFlux 必须选用Reactive的库

POM 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
二、Controller
WebFlux 的Controller 可以沿用SpringMVC 的方式,但是返回结果需要使用Mono或者Flux。
创建一个接口,返回http状态码
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
/**
* test
*
* @author opal
* @since 2020-07-17 10:04
*/
@RestController
@RequestMapping("/test")
public class TestController {
volatile int count502 = 0;
volatile int count200 = 0;
/**
* 返回502状态
* @author opal
* @since 2020-07-17 10:04
*/
@GetMapping("/status502")
public Mono<String> status502(ServerWebExchange exchange){
count502++;
String msg = "这是502页面,第"+ count502 +"次访问";
exchange.getResponse().setStatusCode(HttpStatus.BAD_GATEWAY);
System.out.println(msg);
return Mono.just(msg);
}
/**
* 返回200状态
* @author opal
* @since 2020-07-17 10:04
*/
@GetMapping("/status200")
public Flux<String> status200(){
count200++;
String msg = "这是200页面,第"+ count200 +"次访问";
System.out.println(msg);
return Flux.just("这是200页面", ", 第"+ count200 +"次访问");
}
}
跑起来测试一下:

结语
WebFlux 应用中,所有数据都应该以Mono、Flux的形式表示,这样才能带来最好的性能和高吞吐量,Mono和Flux 这两种数据模型是WebFlux的核心。
WebFulx要学好,需要掌握Reactor(Mono、Flux), 这跟stream很像,建议学习一下stream。
WebFlux快速上手的更多相关文章
- Spring WebFlux快速上手——响应式Spring的道法术器
https://blog.csdn.net/get_set/article/details/79480233
- Spring Cloud Gateway 服务网关快速上手
Spring Cloud Gateway 服务网关 API 主流网关有NGINX.ZUUL.Spring Cloud Gateway.Linkerd等:Spring Cloud Gateway构建于 ...
- Spring Boot (十四): 响应式编程以及 Spring Boot Webflux 快速入门
1. 什么是响应式编程 在计算机中,响应式编程或反应式编程(英语:Reactive programming)是一种面向数据流和变化传播的编程范式.这意味着可以在编程语言中很方便地表达静态或动态的数据流 ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
随机推荐
- 转发请求RequestDispatcher()方法用于与页面的交互
jsp1代码 <form action="HelloServlet" > 账号: <input type="text" name=" ...
- 理解C#中的ExecutionContext vs SynchronizationContext
原文:https://devblogs.microsoft.com/pfxteam/executioncontext-vs-synchronizationcontext/ 作者:Stephen 翻译: ...
- [Java核心技术]第九章-集合(Java集合框架、具体的集合、映射)
9.1Java集合框架 一些有的没的 可以使用接口类型存放集合的引用.一旦改变了想法,只需要在调用构造函数的地方做一处修改. add方法用于向集合添加元素,如果添加元素确实改变了集合就返回true. ...
- 4.Strom-可靠性保证
- 谈谈 Java 中的那些“琐”事
一.公平锁&非公平锁 是什么 公平锁:线程按照申请锁的顺序来获取锁:在并发环境中,每个线程都会被加到等待队列中,按照 FIFO 的顺序获取锁. 非公平锁:线程不按照申请锁的顺序来获取锁:一上来 ...
- Java基础一篇过(五)Map这篇就够了
文章更新时间:2020/03/03 一.Map介绍 Map是Java的一个接口,没有继承,以Key--Value的形式来储存元素信息,常用到的有3个子类实现: HashMap 底层数据结构是散列桶(数 ...
- Java源码赏析(二)Java常见接口
一.Comparable接口 package java.lang; import java.util.*; public interface Comparable<T> { /** * i ...
- mysql及联合查询
SQL语句分类 DDL 数据库定义语言 定义数据库对象 create alter truncate drop TPL 事务处理语言 rollback commit DCL 数据控制语言 由 GRANT ...
- 注解&反射
什么是注解 Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) > 可以被其他程序 ...
- java实现详细的身份证验证、能正确验证身份证正确性
IdCardExpUtil.java package com.javazs.util; import java.text.ParseException; import java.text.Simple ...