WebFlux响应式编程

文章目录

  • 概要
  • 入门WebFlux
    • WebClient

概要

在SpringMvc框架下,http的请求是同步的,在某些场景下为了提供性能,可以采用异步的方式来进行优化。WebFlux便是提供了异步的技术栈

响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式

WebFlux经常会跟响应式编程挂钩,其实其只不过是响应式编程中的一部分技术,代表的是web控制端实现异步从而实现状态变化流转。

入门WebFlux

WebFlux使用的响应式流是一个叫做Reactor响应式流库。所以,入门WebFlux其实更多是了解怎么使用Reactor的API,下面我们来看看~

Reactor是一个响应式流,它也有对应的发布者(Publisher ),Reactor的发布者用两个类来表示:

  • Mono(返回0或1个元素)
  • Flux(返回0-n个元素)

而订阅者则是Spring框架去完成

下面我们来看一个简单的例子(基于WebFlux环境构建):

@EnableDiscoveryClient
@SpringBootApplication
public class WebFluxClient {
   
    public static void main( String[] args )
    {
   
        SpringApplication.run(WebFluxClient.class, args);
    }
}

@RestController
@RequestMapping("/WebFluxClient")
public class WebFluxClientController {
   

    @Autowired
    WebFluxClientService service;

    @GetMapping("/{id}")
    public Mono<String> getById(@PathVariable long id) {
   
        r

你可能感兴趣的:(java,及,java开发生态,java,spring,spring,boot)