优秀的编程知识分享平台

网站首页 > 技术文章 正文

认识Spring WebFlux(认识你真好)

nanyue 2024-08-20 17:31:43 技术文章 6 ℃
  • 基础

构建Web项目的开发者都知道Spring MVC,Spring MVC的构建基于Servlet API,使用同步阻塞式,也就是说每一个请求对应一个线程去处理。

Spring WebFlux是一个异步非阻塞式的Web框架,基于Spring5和Java8及以上版本、lambada表达式、和函数编程开发的框架。

WebFlux 并不能使接口的响应时间缩短,它仅仅能够提升吞吐量和伸缩性。

如图所示,WebFlux如果使用tomcat容器,是需要Servlet3.0以上的,并且不支持数据库连接。

  • 如何使用WebFlux

WebFlux使用Spring Boot启动,它的关键依赖如下:

pom.xml中依赖如下配置,WebFlux将以tomcat为容器启动

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <version>2.0.3.RELEASE</version>
</dependency>

pom.xml中依赖如下配置,WebFlux将基于Netty启动容器

<!--<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <version>2.0.3.RELEASE</version>
</dependency>-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-webflux</artifactId>
 <version>2.0.0.RELEASE</version>
</dependency>

怎样才算是WebFlux的独有特征了?

@GetMapping("common")
public Mono<String> common(){
 return Mono.just("My first mono");
}

如代码所示,可以看到很眼生的对象Mono,Mono就是WebFlux的独有特征。

在WebFlux中,Mono是非阻塞的写法,只有这样,才能发挥WebFlux 非阻塞 + 异步的特性。

Tags:

最近发表
标签列表