Spring webflux 与 Mono 对象交互

Spring webflux interact with Mono object

我有一个简单的 CRUD 控制器。更新时我想将更新后的模型与必须更新的模型合并,这是我目前拥有的:

@PutMapping("{id}")
public Mono<Map> update(@PathVariable UUID id, @RequestBody Server updatedServer) {
    Mono<Server> server = this.serverRepository.findById(id);

    // Update the server here.
    // server.setName(updatedServer.getName());
    // server.setHost(updatedServer.getHost());

    server.flatMap(this.serverRepository::save).subscribe();

    return Mono.just(Collections.singletonMap("success", true));
}

如何在保存前编辑 server 变量?在 Mono 上订阅时,它将在保存后执行。

我知道这是一个非常简单的问题,但我就是找不到解决方法。

我总是在问完问题后就找到答案...
我刚刚使用另一个平面图来编辑对象:

@PutMapping("{id}")
public Mono<Server> update(@PathVariable UUID id, @RequestBody Server updatedServer) {
    Mono<Server> server = this.serverRepository.findById(id);

    return server.flatMap(value -> {
        value.setName(updatedServer.getName());
        value.setHost(updatedServer.getHost());
        return Mono.just(value); // Can this be done cleaner?
    }).flatMap(this.serverRepository::save);
}

或者还在返回的时候success: true:

@PutMapping("{id}")
public Mono<Map> update(@PathVariable UUID id, @RequestBody Server updatedServer) {
    Mono<Server> server = this.serverRepository.findById(id);

    return server.flatMap(value -> {
        value.setName(updatedServer.getName());
        value.setHost(updatedServer.getHost());
        return Mono.just(value); // Can this be done cleaner?
    }).flatMap(this.serverRepository::save).subscribe();

    return Mono.just(Collections.singletonMap("success", true));
}