首页 > 解决方案 > 谁在响应式 Web 应用程序中调用 Flux 或 Mono 订阅

问题描述

我正在查看一些响应式 Web 应用程序的示例,我看到它们是这样的

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody    
public Mono<Person> findById(...) {
    return exampleService.findById(...);
}

@RequestMapping(method = RequestMethod.GET, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
@ResponseBody
public Flux<Person> findAll() {
    Flux<Person> persons = exampleService.findAll();
    return persons;
}

当我在文档中阅读有关 Mono 和 Flux 的信息时,它提到必须为 Mono 或 Flux 调用subscribe才能发出数据。

因此,当我在本地运行这些反应式 Web 应用程序并使用 postman/chrome 浏览器时,当我点击端点时,我得到了结果。

在服务端,虽然端点返回 Mono 或 Flux,但我如何在浏览器/邮递员中看到实际结果。每当我点击返回 Mono/Flux 类型的端点时,浏览器是否在内部调用订阅?

标签: reactive-programmingspring-webfluxproject-reactor

解决方案


MonoFlux概念只存在于您的应用程序中,而 HTTP 协议用于在您的邮递员/chrome 应用程序和您的应用程序之间进行通信。
Spring Webflux 框架的内部类订阅Mono并由Flux控制器方法返回的实例,并根据MediaType您在RequestMapping.


推荐阅读