如何获得人而不是Mono <person>?

时间:2017-10-23 14:45:52

标签: spring-boot spring-webflux

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

23.2.3 Request and Response Body Conversion

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

帐户 - 序列化而不阻止给定帐户;意味着一种同步的,非阻塞的控制器方法。

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);

1 个答案:

答案 0 :(得分:1)

一旦有Mono<Person>个实例,您有两个选择:

  1. 组成该被动类型(即使用该类型可用的运算符)并使用它将该数据保存在数据存储区中,将其作为HTTP响应主体提供等等。
  2. 或在其上调用Person person = result.block()阻止。因此,您不应该在响应式应用程序中执行此操作,因为这可能会完全阻止应用程序可用的少数线程。