1.ResponseEntity继承了HttpEntity ,可以添加HttpStatus状态码的HttpEntity的扩展类。倍用于RestTemplateheController层方法

    2.ResponseEntity可以定义返回的HttpStatus(状态码)和HttpHeaders(消息头:请求头和响应头)

    3.ResponseEntity的优先级高于@ResponseEntity的情况下才去检查有没有@ResponseBody注解,如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系,简单来说,@ResponseBody可以直接返回json结果,@ResponseEntity不仅可以返回json结果,还可以定义返回HttpHeaders和HttpStatus

    1. public ResponseEntity<List<Category>> queryCategoriesByPid(@RequestParam(value = "pid",defaultValue = "0") Long pid){
    2. if(pid == null || pid.longValue()<0){
    3. // 响应400,相当于ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
    4. return ResponseEntity.badRequest().build();
    5. }
    6. //ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
    7. // ResponseEntity.notFound().build();
    8. // ResponseEntity.ok(null);
    9. List<Category> categoryList = this.categoryService.queryCategoriesByPid(pid);
    10. if(CollectionUtils.isEmpty(categoryList)){
    11. // 响应404
    12. return ResponseEntity.notFound().build();
    13. }
    14. return ResponseEntity.ok(categoryList);