我正在查看一些响应式 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 才能发出数据。
因此,当我在本地运行这些响应式(Reactive) Web 应用程序并使用 postman/chrome 浏览器时,当我点击端点时,我得到了结果。
在服务端,虽然端点返回 Mono 或 Flux,但我如何在浏览器/ postman 中看到实际结果。
每当我点击返回 Mono/Flux 类型的端点时,浏览器是否在内部调用订阅?
最佳答案
Mono
和 Flux
概念只存在于您的应用程序中,而 HTTP 协议(protocol)用于在您的 postman/chrome 应用程序和您的应用程序之间进行通信。
Spring Webflux 框架内部类订阅Mono
和 Flux
Controller 方法返回的实例,并根据 MediaType
将它们映射到 HTTP 数据包。您在 RequestMapping
中指定的.
关于reactive-programming - 谁在响应式 Web 应用程序中调用 Flux 或 Mono 订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56487429/