当前位置: 首页 > 知识库问答 >
问题:

如何在Spring反应式API中从Mono获得通量?

阮飞翔
2023-03-14

我在NoSQL文档db Photo和Property中有两个独立的集合,其中Photo有propertyId参数,这意味着我可以找到属于给定属性(如房子)的所有照片。通常情况下,如果没有反应,我只会:

Property property = ....
List<Photo> = photoService.findByPropertyId(property.getId());

就两行。如何在反应式编程中做到以上几点

`Mono<Property> and I want to find Flux<Photo>

不使用block()?`承担一项义务。findByPropertyId返回列表,在被动情况下返回通量。

共有1个答案

蔚楷
2023-03-14

您应该使用flatMapMany,它从可以发出多个元素的Mono值触发异步处理:

Flux<Photo> photoFlux = propertyMono
    .flatMapMany(prop -> photoService.findByPropertyId(prop.getId()));
 类似资料:
  • 我是Spring Reactive Project的新手。在我的Spring Boot Controller课程中

  • 我有一个接受Mono作为参数的方法。我只想从中得到实际的字符串。Googled但是除了调用Mono对象上的block(),没有找到答案,但是它会进行阻塞调用,所以要避免使用block()。如果可能的话,请建议其他方法。我之所以需要这个字符串,是因为在这个方法中,我需要用实际的字符串值调用另一个方法,比如print()。我明白这很容易,但我是反应性编程的新手。 代码:

  • 从我的角度来看,我认为可以有一种方法在代码中明确我的Rest API是反应性的,但可能是我不知道的。

  • 我尝试使处理程序和路由器类的Spring引导webflow。模型类是用户类。代码是 下面是webflux项目的处理程序类。在register方法中,我编写了id复制测试代码。但这是完全错误的。 我想提取的用户名或id字符串从Mono的Spring webflow.将需要任何评论。我被这部分卡住了。

  • 这里是被动Java的新手。有人能帮我完成这个简单的场景吗(用Kotlin编写): 运行它会产生: 在数据库中创建项目 为什么不打印“删除项目”一行?

  • 我有一个短信api在PHP,我打电话发送短信。我通过一些json和一个url回调来获得响应状态,短信被发送。 之后服务器调用我的回调url,但我不能得到响应体。$_GET和$_POST是空的...留档不存在。它应该有一些json。有人能帮帮我吗?提前感谢