常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例

 更新时间:2024年07月04日 16:12:58   作者:xavierqwb  
这篇文章主要介绍了常用的ResponseEntity.BodyBuilder和自定义ResponseEntity的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

ResponseEntity.ok() 和 ResponseEntity.BodyBuilder()

返回200(HttpStatus.SC_OK)

@RequestMapping("/check")
public ResponseEntity<String> check() {
    BodyBuilder builder = (BodyBuilder) ResponseEntity.ok();
    builder.allow(HttpMethod.GET);
    builder.contentType(MediaType.TEXT_HTML);
    builder.eTag("W/MyeTag\"");
    return builder.body("Hello World!");
}

ResponseEntity.status()

使用HttpStatus返回需要的HttpCode

@RequestMapping("/handle")
public ResponseEntity<String> handle() {
   return ResponseEntity.status(HttpStatus.SC_CREATED).body("Created Success");
}

ResponseEntity.created()

返回201(HttpStatus.SC_CREATED)

@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
    URI location = null;
    try {
    location = new URI("http://www.concretepage.com/");
    } catch (URISyntaxException e) {
    e.printStackTrace();
    }
    return ResponseEntity.created(location).build();
} 

ResponseEntity.accepted()

返回202(HttpStatus.SC_ACCEPTED)

@RequestMapping("/handle")
public ResponseEntity<String> handle() {
     return ResponseEntity.accepted().body("Hello World!");
} 

ResponseEntity.noContent()

返回204(HttpStatus.SC_NO_CONTENT)

@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
    return ResponseEntity.noContent().build();
} 

ResponseEntity.badRequest()

返回400(HttpStatus.SC_BAD_REQUEST)

@RequestMapping("/handle")
public ResponseEntity<String> handle() {
   return ResponseEntity.badRequest().body("Bad Request");
} 

ResponseEntity.notFound()

返回404(HttpStatus.SC_NOT_FOUND)

@RequestMapping("/handle")
public ResponseEntity<Void> handle() {
    return ResponseEntity.notFound().build();
} 

ResponseEntity和ResponseBody的区别

1.ResponseEntity的优先级高于@ResponseBody。在不是ResponseEntity的情况下才去检查有没有@ResponseBody注解。如果响应类型是ResponseEntity可以不写@ResponseBody注解,写了也没有关系。

2.ResponseEntity 是在 org.springframework.http.HttpEntity 的基础上添加了http status code(http状态码),用于RestTemplate以及@Controller的HandlerMethod。它在Controoler中或者用于服务端响应时,作用是和@ResponseStatus与@ResponseBody结合起来的功能一样的。用于RestTemplate时,它是接收服务端返回的http status code 和 reason的。

简单直接的讲:

  • @ResponseBody可以直接返回Json结果
  • @ResponseEntity不仅可以返回json结果,还可以定义返回的HttpHeaders和HttpStatus

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java使用httpRequest+Jsoup爬取红蓝球号码

    Java使用httpRequest+Jsoup爬取红蓝球号码

    本文将结合实例代码,介绍Java使用httpRequest+Jsoup爬取红蓝球号码,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • 浅谈synchronized加锁this和class的区别

    浅谈synchronized加锁this和class的区别

    synchronized 是 Java 语言中处理并发问题的一种常用手段,本文主要介绍了synchronized加锁this和class的区别,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • SpringCloud Feign请求头删除修改的操作代码

    SpringCloud Feign请求头删除修改的操作代码

    这篇文章主要介绍了SpringCloud Feign请求头删除修改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 简单了解java获取类的3种方式

    简单了解java获取类的3种方式

    这篇文章主要介绍了java获取类的3种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java遍历HashMap简单的方法

    java遍历HashMap简单的方法

    这篇文章主要介绍了java遍历HashMap简单的方法,以实例形式简单分析了采用java遍历HashMap的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Java多线程及分布式爬虫架构原理解析

    Java多线程及分布式爬虫架构原理解析

    这篇文章主要介绍了Java多线程及分布式爬虫架构原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • springboot validator枚举值校验功能实现

    springboot validator枚举值校验功能实现

    这篇文章主要介绍了springboot validator枚举值校验功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • SpringBoot中Bean拷贝及工具类封装的实现

    SpringBoot中Bean拷贝及工具类封装的实现

    本文主要介绍了SpringBoot中Bean拷贝及工具类封装的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 基于Mybatis-Plus拦截器实现MySQL数据加解密的示例代码

    基于Mybatis-Plus拦截器实现MySQL数据加解密的示例代码

    用户的一些敏感数据,例如手机号、邮箱、身份证等信息,在数据库以明文存储时会存在数据泄露的风险,因此需要进行加密,解密等功能,接下来本文就给大家介绍基于Mybatis-Plus拦截器实现MySQL数据加解密,需要的朋友可以参考下
    2023-07-07
  • java的Jackson框架实现轻易转换JSON

    java的Jackson框架实现轻易转换JSON

    本篇文章主要介绍了java的Jackson框架实现轻易转换JSON,Jackson将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象,有兴趣的可以了解一下。
    2017-02-02

最新评论