参考文档

ResponseEntity和@ResponseBody以及@ResponseStatus区别:https://www.jdon.com/springboot/responseentity.html

常用构造方法

构造方法-1

public ResponseEntity(HttpStatus status) {
       this((Object)null, (MultiValueMap)null, (HttpStatus)status);
}

使用示例

@RequestMapping("/hello")
public ResponseEntity<String> jsonDemo1(String name) throws IOException {
    return new ResponseEntity<>(HttpStatus.OK);
}

 

构造方法-2

接收一个泛型参数和HttpStatus参数,直接返回信息

public ResponseEntity(@Nullable T body, HttpStatus status) {
    this(body, (MultiValueMap)null, (HttpStatus)status);
}

使用示例

@GetMapping("/hello")
public ResponseEntity<String> hello() {
return new ResponseEntity<>("Hello World!", HttpStatus.OK);
}

构造方法-3

public ResponseEntity(MultiValueMap<String, String> headers, HttpStatus status) {
    this((Object)null, headers, (HttpStatus)status);
}

使用示例

@RequestMapping("/hello")
public ResponseEntity<String> jsonDemo1(String name) throws IOException {
    HttpHeaders headers = new HttpHeaders();
    // 添加一个自定义的head头Custom-Header
    headers.add("Custom-Header", "foo");
    return new ResponseEntity<>(headers, HttpStatus.OK);
}

 

构造方法-4

接收一个泛型参数、head头、HttpStatus参数,直接返回信息

public ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, HttpStatus status) {
    super(body, headers);
    Assert.notNull(status, "HttpStatus must not be null");
    this.status = status;
}

使用示例

@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
    HttpHeaders headers = new HttpHeaders();
    // 添加一个自定义的head头Custom-Header
    headers.add("Custom-Header", "foo");
    return new ResponseEntity<>("Custom header set", headers, HttpStatus.OK);
}

构造方法-5(同构造方法-4)

private ResponseEntity(@Nullable T body, @Nullable MultiValueMap<String, String> headers, Object status) {
    super(body, headers);
    Assert.notNull(status, "HttpStatus must not be null");
    this.status = status;
}

常用链式调用

 

@RequestMapping("/hello")
public ResponseEntity<String> jsonDemo1(String name) throws IOException {
    return ResponseEntity.ok()
            .header("Custom-Header", "foo")
            .body("Custom header set");
}