Spring Boot bodyToMono ParameterizedTypeReference和bodyToFlux有什么区别

w6lpcovy  于 2023-06-22  发布在  Spring
关注(0)|答案(1)|浏览(170)

我看不出这两种方法在时间复杂度上有什么大的区别,这两种方法都很有效,我想知道这两种方法的主要区别是什么
我正在从服务中获取Student对象的集合。
bodyToMono参数化类型引用

public Mono<Collection<Student>> getStudents(String id) {

    return webClient
         .get()
         .uri(uriBuilder -> uriBuilder
             .path("/students/{0}")
             .build(id))
         .retrieve()
         .onStatus(HttpStatus::isError, resp -> resp.createException()
             .map(WebClientGraphqlException::new)
             .flatMap(Mono::error)
         ).bodyToMono(new ParameterizedTypeReference<Collection<Student>>() {}); // This Line
  }

bodyToFlux收集器

public Mono<Collection<Student>> getStudents(String id) {

    return webClient
         .get()
         .uri(uriBuilder -> uriBuilder
             .path("/students/{0}")
             .build(id))
         .retrieve()
         .onStatus(HttpStatus::isError, resp -> resp.createException()
             .map(WebClientGraphqlException::new)
             .flatMap(Mono::error)
         ).bodyToFlux(Student.class).collect(Collectors.toList()); // This Line
  }
y4ekin9u

y4ekin9u1#

  • 如果要检索单个项目,请使用bodyToMono。它发出0-1个项目
  • 对于多个项目,请使用bodyToFlux。它发出0-N个项目。

更多关于处理函数spring reactive web handler

相关问题