Spring Webflux客户端

18-10-30 banq
         

在上一篇文章中,我们介绍了Web响应服务器,这次我们将看到如何编写客户端。让我们开始创建一个新项目,将Webflux,Mongo Reactive和Lombok作为依赖项。

创建一个简单的POJO来从我们的Reactive服务器中检索信息。

@Document
@AllArgsConstructor
@ToString
@NoArgsConstructor
@Data
public class Person {

  @Id
  private String uuid;
  private String nickname;
  private String email;

}

Lombok是一个避免样板代码的好工具,了解更多信息请到这里

接下来,我们将CommandLineRunner用于启动我们的工作流程。这CommandLineRunner是Spring Boot中的回调接口,当Spring Boot启动时会调用它并传入args调用run()内部方法 。

@SpringBootApplication
public class PersonApplication {

  public static void main(String[] args) {
    SpringApplication.run(PersonApplication.class, args);
  }

  @Bean
  WebClient webClient() {
    return WebClient.create("http://localhost:8080/persons");
  }

  @Bean
  CommandLineRunner run(WebClient client){
    return args -> {
      client.get().uri("").retrieve()
        .bodyToFlux(Person.class)
        .subscribe(System.out::println);
    };
  }

}

WebClient是定义为@Bean使用我们的响应式Web服务器执行非阻塞HTTP请求的Reactive客户端,默认情况下使用Netty。

不要忘记在我们的application.properties文件中使用以下规范在不同的端口运行此客户端:

server.port=8081

请转到此处下载项目: