我正在尝试使用 Spring Webflux 创建一个简单的 CRUD 示例,但我陷入了一些概念。
我知道我可以在我的控制器请求映射方法中返回一个 Flux。但有时我想返回一个 404 状态,所以我可以在前端以某种方式处理。
我在官方文档中找到了一个使用 ServerResponse 对象的示例:
public Mono<ServerResponse> listPeople(ServerRequest request) {
Flux<Person> people = repository.allPeople();
return ServerResponse.ok().contentType(APPLICATION_JSON).body(people, Person.class);
}
如您所见,即使返回的是一个列表 (Flux) o people, ServerResponse.ok.body 也会创建一个 Mono。
所以我的问题是:是这样吗?换句话说,我有没有 Flux 没关系,Spring 总是返回一个ServerResponse 的Mono(或其他类似的类)吗?
对于我的 404 状态,我可以使用类似的东西
.switchIfEmpty(ServerResponse.notFound().build());
但我正在以更流畅的方式思考。例如,我可以逐个元素地处理对象列表。