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));
}
我有一个简单的 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));
}