Spring Security入门(八) 使用Spring MVC开发RESTful API-错误处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33248299/article/details/89636297

一.导学

  • Spring boot中默认的错误处理机制
  • 自定义异常处理

二.spring boot中默认的错误处理机制

  • 访问一个不存在的url
http://localhost:8070/xxx
  • 浏览器的默认错误如下图所示
    在这里插入图片描述
  • 浏览器的处理(我们先访问正常页面)
http://localhost:8070/user/1

在这里插入图片描述

  • 获取用户信息的请求,返回的是json格式的用户信息

  • 我们再访问不存在的url 看看浏览器是怎么处理的
    在这里插入图片描述
    总结:浏览器发的时候响应是一段html,客户端发的时候是一段json。Spring boot默认处理机制,它会判断当前请求是浏览器发的还是客户端发送的,根据不同请求有不同的处理

  • 我们来看看源码是怎么操作的

  • 在BasicErrorController 这个类(Spring boot内部错误处理的控制器)

在这里插入图片描述

  • 有两个RequstMapping
  • 区别在于请求头中有没有text/html参数
  • ResponseBody注解 把map转换成json
    在这里插入图片描述
  • 浏览器请求头第一个就是text/html
    在这里插入图片描述
  • 而客户端并不含有text/html
  • restfull api 是通过http状态码返回不同的场景,所以这里status是404.而且请求响应状态也是404,自己在设计的时候可以参考这个思想
  • 还有一个提示信息 “No message available” 404 状态就是没有找到可处理的路径,没有可用的信息也符合解释
  • 但是在实际开发中,只是凭借http状态码的话,是不能解决实际场景中的需求的
  • 比如创建用户信息,缺少字段,需要返回哪一个字段缺少

三.自定义错误处理

  • 自定义浏览器错误处理

待写中…

猜你喜欢

转载自blog.csdn.net/qq_33248299/article/details/89636297
今日推荐