Spring Webflux:一个基本的 CRUD 应用程序(第 1 部分)

主要观点:通过创建基本的 CRUD 应用继续探索 Spring Webflux 的能力,本部分不使用数据库,第二部分添加,实现了多个 CRUD 操作及对Flux的单元测试,代码可在GitHub获取。
关键信息:

  • 用 Spring Initializr 创建项目,选择 Java 9、Spring Boot 2.0.0、Reactive Web 依赖。
  • 创建ShowShowEvent域对象,分别包含idtitleiddate
  • 实现ReactiveShowRepository接口,使用ReactiveCrudRepository,添加spring-data-commons依赖。
  • 创建ShowHandler作为服务等价物,注入ShowRepository并返回Flux转换后的Mono
  • 创建Router将 URL 与Handler链接,在WebConfig类中定义RouterFunctions
  • ReactiveShowRepository中实现findAll方法,用ConcurrentHashMap存储数据。
  • 实现findById方法,在ShowHandler中添加byId方法并添加路由。
  • 创建ShowEventHandler,使用Flux.generatedelayElements每秒发送ShowEvent,添加路由。
  • WebTestClient测试ShowEvents,先出现连接关闭异常,添加默认构造函数后测试成功。
    重要细节:
  • 各种方法的具体实现细节,如ReactiveShowRepository中接口方法的空实现及具体存储数据方式等。
  • RouterFunctions的添加路由方式及顺序。
  • WebTestClient测试的具体步骤和遇到的问题及解决方法。
阅读 5
0 条评论