此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

ResponseEntity

ResponseEntity就像@ResponseBody但带有状态和标题。例如:spring-doc.cadn.net.cn

@GetMapping("/something")
public ResponseEntity<String> handle() {
	String body = ... ;
	String etag = ... ;
	return ResponseEntity.ok().eTag(etag).body(body);
}
@GetMapping("/something")
fun handle(): ResponseEntity<String> {
	val body: String = ...
	val etag: String = ...
	return ResponseEntity.ok().eTag(etag).build(body)
}

WebFlux 支持使用单值响应式类型来 生成ResponseEntity异步和/或单值和多值响应式类型 对于身体。这允许使用ResponseEntity如下:spring-doc.cadn.net.cn

  • ResponseEntity<Mono<T>>ResponseEntity<Flux<T>>使响应状态和 标头立即已知,而正文稍后以异步方式提供。 用Mono如果正文由 0..1 个值组成或Flux如果它可以产生多个值。spring-doc.cadn.net.cn

  • Mono<ResponseEntity<T>>提供所有三个 — 响应状态、标头和正文, 稍后异步。这允许响应状态和标头变化 取决于异步请求处理的结果。spring-doc.cadn.net.cn

  • Mono<ResponseEntity<Mono<T>>>Mono<ResponseEntity<Flux<T>>>是另一个 可能的,尽管不太常见的替代方案。它们提供响应状态和标头 首先异步,然后是响应体,其次也是异步的。spring-doc.cadn.net.cn