springMVC中的reponseEntity是干什么用的?

看公司的项目 controller层里方法的返回值全都是ReponseEntity
这是干什么用的?

  @RequestMapping(value = "/getLeaderPosts", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<List<PostsDTO>> getLeaderPosts(@CurrentUserState UserState userState,@RequestBody PageInfo pageInfo, @RequestBody(required = false) PostsDTO dto) {
        ResponseEntity<List<PostsDTO>> retRes = new ResponseEntity<List<PostsDTO>>();
        PageBounds pageBounds = new PageBounds(pageInfo.getPage(), pageInfo.getPageSize());
        dto.setCreateUserId(userState.getUserId());
        retRes.setEntity(postsService.getLeaderPosts(dto, pageBounds));

        return retRes;
    }

响应实体类,自己定义的

ResponseEntity 可以定义返回的HttpHeaders和HttpStatus
http://blog.csdn.net/json20080301/article/details/12620547

自定义的restful风格的编码规范。http://www.cnblogs.com/xiaochangwei/p/5419244.html

返回实体中,第一个参数为返回的数据,相当于out.write(map.toString()),第二个参数是状态码,可以设置返回404,ResponseEntity的优先级高于@ResponseBody。在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解。如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系。