
Spring webflux
ywb201314
兵法有言,知己知彼,百战不殆
展开
-
Postgres spring boot R2dbc 应用程序中缺少 DatabaseClient
与直接注册 ConnectionFactory 实例相比,配置支持还有一个额外的优势,即还为容器提供了一个 ExceptionTranslator 实现,该实现将 R2DBC 异常转换为 Spring 的可移植 DataAccessException 层次结构中的异常,用于使用 @Repository 批注注释的数据访问类。这种方法允许您使用标准的 io.r2dbc.spi.ConnectionFactory 实例,容器使用 Spring 的 AbstractR2dbcConfiguration。转载 2023-02-17 14:49:45 · 114 阅读 · 0 评论 -
spring webflux文件上传下载
序本文主要讲述一下spring webflux的文件上传和下载。maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency>文件上传@Pos转载 2020-09-25 15:30:29 · 1294 阅读 · 0 评论 -
WebFlux切换Web容器Tomcat、undertow、jetty、netty
没有比较就没有伤害!Web 容器我们用的最多的还是 Tomcat,但是 Tomcat 的性能现在比起其他容器来说有点劣势!很多人可能更喜欢 Jetty 或者 netty,那么这么多 Web 容器,我们在使用 WebFlux 的时候该如何切换呢?一起来看本文的教程吧!Spring WebFlux支持Netty,Undertow,Tomcat,Jetty和Servlet 3.1+容器。他们都适用于一个通用的Reactive Streams API。Spring WebFlux编程模型基于该通用API。S转载 2020-09-25 14:48:38 · 3672 阅读 · 0 评论 -
webflux session属性修改
修改webflux session属性springcloud gateway 使用webflux做web框架之后,使用org.springframework.web.server.session.WebSessionIdResolver接口作为session的产生接口,默认为 cookie方式实现:org.springframework.web.server.session.CookieWebSessionIdResolver重新申明 此接口即可进行一些参数配置 @B..转载 2020-05-29 14:13:06 · 2027 阅读 · 0 评论 -
SpringWebFlux执行过程
Spring WebFlux的出现带来了异步响应式编程的福音,随着它不断的完善,使用者会逐渐的变多,作为经常拿来与Spring MVC对比的框架。它的执行过程,设计上与Spring MVC有什么区别呢?大致看了下其源码,做了简要梳理。启动1 仍然保持原有的方式启动应用,那么Spring如何知道要启动WebFlux应用呢?WebApplicationType枚举类中,deduceFromClasspath判断如果存在DispatcherHandler,然后一些其它条件,那么系统认为要启动的转载 2020-05-27 14:25:28 · 789 阅读 · 0 评论 -
Springboot 2.0---WebFlux请求处理流程
笔记是学习了小马哥在慕课网的课程的《Spring Boot 2.0深度实践之核心技术篇》的内容结合自己的需要和理解做的笔记。前言在了解了WebFlux核心组件之后,我们就该了解相应的请求流程了,在之前就写过几篇关于 SpringMvc 请求的流程笔记,如果之前有过了解的并且自己debugger 过的小伙伴,相信了解 WebFlux 的执行流程会很快。我们知道WebFlux支持两种请求模式注解驱动 函数式端点接下来我们会重点讲一下函数式端点请求的具体流程,注解驱动由于跟SpringMVC很转载 2020-05-26 20:14:39 · 1409 阅读 · 0 评论 -
Spring-Cloud-Gateway之请求处理流程
Spring-Cloud-Gateway 初始化,路由模型,以及路由加载等源码在上几篇学习文档中已经描述,接下来来看Spring-Cloud-Gateway是怎么通过这些来对我们的请求进行路由处理的Spring-Cloud-Gateway整体流程图imageDispatcherHandler:所有请求的调度器,负载请求分发 RoutePredicateHandlerMapping:路由谓语匹配器,用于路由的查找,以及找到路由后返回对应的WebHandler,DispatcherHan转载 2020-05-21 17:58:03 · 925 阅读 · 0 评论 -
Reactor之发射器(Flux、Mono)转换操作函数
Reactor 发射器转换操作函数concatWithValues@SafeVarargspublic final Flux<T> concatWithValues(T... values)将值连接到Flux的末尾。imageconcatpublic static <T> Flux<T> concat(Iterable<? extends Publisher<? extends T>> sources..转载 2020-05-21 17:06:41 · 1858 阅读 · 0 评论 -
(4)Reactor 3快速上手——响应式Spring的道法术器
本系列其他文章见:《响应式Spring的道法术器》。前情提要:响应式流 | lambda与函数式1.3.2 ReactorReactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范 (Reactive Streams specification)的响应式库。本文对Reactor的介绍以基本的概念和简单的使用为主,深度以能够满足基本的Spring WebFlux使用为准。在下一章,转载 2020-05-21 16:43:10 · 511 阅读 · 1 评论 -
附2:Reactor 3 之选择合适的操作符——响应式Spring的道法术器
本系列文章索引《响应式Spring的道法术器》前情提要Reactor Operators本节的内容来自我翻译的Reactor 3 参考文档——如何选择操作符。由于部分朋友打开github.io网速比较慢或上不去,贴出来方便大家查阅。如果一个操作符是专属于Flux或Mono的,那么会给它注明前缀。公共的操作符没有前缀。如果一个具体的用例涉及多个操作符的组合,这里以方法调用的方式展现,会以一个点(.)开头,并将参数置于圆括号内,比如:.methodCall(parameter)。...转载 2020-05-15 18:04:22 · 1337 阅读 · 0 评论 -
详解 Webflux 中的 onErrorResume 和 onErrorReturn
webflux 并不算一门新技术,它出自 Spring,所以 Spring 中的一些特性它都有,包括 SpringMVC 中的一些注解它也可以沿用。没看过 webflux 教程的,可以参考我前面关于 webflux 教程的一些文章。本文我们来学习 webflux 中两个比较特独的方法 onErrorResume 和 onErrorReturn。先回忆一下,我们在 SpringMVC 或者 SpringBoot 中常用的处理异常的方式有:@RestControllerAdvice、@ExceptionHa转载 2020-05-15 15:55:24 · 8998 阅读 · 0 评论 -
Mono和Flux的用法详解
WebFlux的Flux和Mono用法Fluxjust可以指定序列中包含的全部元素。创建出来的 Flux 序列在发布这些元素之后会自动结束。fromArray(),fromIterable()和 fromStream()可以从一个数组、Iterable 对象或 Stream 对象中创建 Flux 对象。empty()创建一个不包含任何元素,只发布结束消息的序列,在响应式编程中,流的传递是基于元素的,empty表示没有任何元素,所以不会进行后续传递,需要用switchIfEmpty等处理er转载 2020-05-15 15:45:16 · 2776 阅读 · 0 评论 -
反应式编程之Mono.defer
本文基于project reactor,,reactor-bom版本为Dysprosium-SR4,project reactor数据源大致可以分为两类:恶汉型跟懒汉型,mono defer方法创建数据源属于懒汉型,与Mono.just等创建数据源则是恶汉型,下面看一个例子: @Test public void defer(){ //声明阶段创建DeferClass对象 Mono<Date> m1 = Mono.just...转载 2020-05-15 13:35:08 · 1322 阅读 · 0 评论 -
基于Spring BOOT + Spring Webflux的UDP数据接收及发送
UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。1.创建Spring BOOT项目在Spring官网https://start.spring.io/创建Spring Boot项目,添加spring-boot-starter-webflux及lombok依赖。<?xml version="1.0" encoding="UTF-8"?>...转载 2019-12-19 17:17:34 · 1166 阅读 · 1 评论 -
countDownLatch
1.背景:countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。2.概念countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线...转载 2019-12-07 13:55:17 · 132 阅读 · 0 评论 -
响应式编程中的Flux和Mono
响应式编程介绍反应式编程来源于数据流和变化的传播,意味着由底层的执行模型负责通过数据流来自动传播变化。比如求值一个简单的表达式 c=a+b,当 a 或者 b 的值发生变化时,传统的编程范式需要对 a+b 进行重新计算来得到 c 的值。如果使用反应式编程,当 a 或者 b 的值发生变化时,c 的值会自动更新。反应式编程最早由 .NET 平台上的 Reactive Extensions (Rx) 库...转载 2019-12-04 20:20:10 · 622 阅读 · 0 评论 -
Mono入门应用
前言Flux 和 Mono 是 Reactor 中的两个基本概念。Flux 表示的是包含 0 到 N 个元素的异步序列。在该序列中可以包含三种不同类型的消息通知:正常的包含元素的消息、序列结束的消息和序列出错的消息。当消息通知产生时,订阅者中对应的方法onNext(), onComplete()和 onError()会被调用。Mono 表示的是包含 0 或者 1 个元素的异步序列。该序列中同样可...转载 2019-12-04 19:16:03 · 1932 阅读 · 0 评论 -
spring-security 在 spring webflux 中的使用
spring security 在 spring webflux 中的使用spring5增加了reactive web模块,相应的在spring security中也增加了 [webflux-web-security] 模块,相对于spring security 在配置和使用方面有略微的差异,下面主要说明简单的配置和自定义用户信息的配置。1、基本配置import org.springfra...转载 2019-12-03 18:16:19 · 919 阅读 · 0 评论