在Spring Webflux项目中,我有一个方法可以返回包装到Mono
Mono<MyObject> find(.....) {
}
在调用此方法后的反应式代码中,我需要检查接收对象中的一个字段,如果不是null
,则需要将其存储到数据库中并替换为另一个值。
这是将数据存储到数据库的方法的签名
Mono<String> insert(...);
这是我执行此任务的地方
Mono<MyObject> result =
service.find(...)
.map(returnedResults -> {
if (returnedResults.getMyField() != null) {
return repository.insert(...)
.map(inserted-> new MyObject(inserted.getMyField())));
} else {
return Mono.just(returnedResults);
}
}).flatMap(x -> x);
这似乎可行,但是对于反应流来说是陌生的,您能告诉我这是否是解决此问题的最佳方法吗?