ResponseEntity

ResponseEntity类似于@ResponseBody,但具有状态和头信息。例如:

  • Java

  • Kotlin

@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 = ...
	val etag = ...
	return ResponseEntity.ok().eTag(etag).build(body)
}

Spring MVC支持使用单个值的响应式类型异步生成ResponseEntity,以及用于主体的单个值和多个值的响应式类型。这允许以下类型的异步响应:

  • ResponseEntity<Mono<T>>ResponseEntity<Flux<T>>使响应状态和头信息立即可知,而主体在稍后以异步方式提供。如果主体由0..1个值组成,请使用Mono,如果可以产生多个值,请使用Flux

  • Mono<ResponseEntity<T>>在稍后异步提供所有三个内容——响应状态、头信息和主体。这允许响应状态和头信息根据异步请求处理的结果而变化。