【问题标题】:How to get Person instead of Mono<Person>?如何获取 Person 而不是 Mono<Person>?
【发布时间】:2018-04-04 04:05:35
【问题描述】:

请在下面的检索代码中,如何获取 Person 而不是 Mono 或如何从 Mono 获取 Person?

23.2.3 Request and Response Body Conversion

响应正文可以是以下之一:

Account — 在不阻止给定帐户的情况下进行序列化;意味着一个同步的、非阻塞的控制器方法。

1.7.1. Retrieve

WebClient client = WebClient.create("http://example.org");

Mono<Person> result = client.get()
                      .uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
                      .retrieve()
                      .bodyToMono(Person.class);

【问题讨论】:

    标签: spring-boot spring-webflux


    【解决方案1】:

    一旦您有一个可用的Mono&lt;Person&gt; 实例,您就有两个选择:

    1. 组合该响应式类型(即使用该类型上可用的运算符)并使用它将该数据保存在数据存储中,将其用作 HTTP 响应正文等
    2. 或在其上调用Person person = result.block()阻塞。因此,您不应该在反应式应用程序中这样做,因为这可能会完全阻塞您的应用程序可用的少数线程。

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 2021-04-10
      • 2010-11-01
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多