ResponseEntity 就像 @ResponseBody,但有 状态 头信息。比如说:

  1. @GetMapping("/something")
  2. public ResponseEntity<String> handle() {
  3. String body = ... ;
  4. String etag = ... ;
  5. // ResponseEntity 可以设置 contentType 等 response 中设置的属性
  6. // 对于 body 来说,如果你的 body 是一个对象,那么没有配置消息转换器的话,就会报错
  7. return ResponseEntity.ok().eTag(etag).build(body);
  8. }

Spring MVC 支持使用 reactive type 来异步产生 ResponseEntity,这允许以下类型的异步响应:

  • ResponseEntity<Mono<T>>ResponseEntity<Flux<T>>使响应状态和头信息立即为人所知,而 body 则在稍后时间异步提供。如果 body 由 0...1个值组成,则使用 Mono,如果可以产生多个值,则使用 Flux。

  • Mono<ResponseEntity<T>>在稍后阶段以异步方式提供所有三者—响应状态、头信息和正文。这使得响应状态和头信息可以根据异步请求处理的结果而变化。

例子

关于 response Entity 的相关实战例子