Java 如何使用Spring5反应式存储库在fire-and-forget模式下进行保存
我正试图找出如何在fire and forget模式下使用Spring5 ReactiveCrudepository在(例如mongo)中进行保存 代码很简单Java 如何使用Spring5反应式存储库在fire-and-forget模式下进行保存,java,spring,reactive-programming,Java,Spring,Reactive Programming,我正试图找出如何在fire and forget模式下使用Spring5 ReactiveCrudepository在(例如mongo)中进行保存 代码很简单 public Mono<MyObject> saveObject(Mono<MyObject> mono) { return mono.flatMap(objectRepository::save); } 公共Mono保存对象(Mono){ 返回mono.flatMap(objectRepository:
public Mono<MyObject> saveObject(Mono<MyObject> mono) {
return mono.flatMap(objectRepository::save);
}
公共Mono保存对象(Mono){
返回mono.flatMap(objectRepository::save);
}
事实上,我不需要读取返回的值,在反应式世界中,读取操作触发保存
我试过了
objectService.saveObject(Mono.just(object)).block();
它工作得很好,但是它阻塞了:D
我想知道如何正确地做这件事。(或者如果这只是个坏主意)
谢谢朱利安
objectService.saveObject(Mono.just(object)).subscribe();
您需要一个触发操作的操作。
.block()
是一种方法,但这不是一个好主意。一旦你“阻挡”了,你就不再是被动的世界了
如果您对该方法返回的值不感兴趣—您可以使用并清空subscribe方法—它只会触发该操作
即使我对这个值不感兴趣,我也会使用Mono.subscribe(消费者
objectService.saveObject(Mono.just(object)).subscribe(null,
error -> logger.error(error),
() -> logger.info("completed"));