java Spring Webflux非阻塞依赖资源调用
我使用的是Spring Webflux和Spring数据MongoDB。 在我的REST控制器中,我试图从数据库(MongoDB)中获取一种类型的所有对象(例如,一个品牌的所有自行车)。 我当前的实现如下所示:
@GetMapping("/bybrand/{brandId}")
public Flux<Bike> bikesByBrand(@PathVariable(value = "brandId") String brandId) {
return bikeRepository.findByBrand( //returns a Flux<Bike>
brandRepository.findById(brandId) //returns a Mono<Brand>
.block() //returns a Brand
);
}
为了保持被动模式,我想避免block()调用。我尝试了map()和doOnSuccess()的多种组合,但没有找到正确的方法来做我想做的事情。 我在网上找到的示例或教程没有介绍使用依赖数据库调用的用例。 我如何避免在这里使用block(),使用依赖的前一个调用访问数据库的黄金标准是什么
我的另一个方法是:
brandRepository.findById(brandId)
.doOnSuccess(brand -> bikeRepository.findByBrand(brand));
但我找不到一种方法,最终用高级方法返回lambda函数(自行车流量)的结果
# 1 楼答案
你可以使用Flatmap很多