Spring boot错误处理原理

错误处理原理

ErrorMvcAutoConfiguration
错误处理自动配置
这里写图片描述

自动配置

给容器中添加了以下组件

1、DefaultErrorAttributes
2、BasicErrorController
3、ErrorPageCustomizer
4、DefaultErrorViewResolver

错误处理过程

一但系统出现4xx或者5xx之类的错误
ErrorPageCustomizer
就会生效,定制错误的响应规则

registerErrorPages
注册错误页面的响应规则
这里写图片描述

getPath

path,值为/error
/error,就是从配置文件中,取出error.path的值

系统出现错误以后,来到error请求进行处理
web.xml注册的错误页面规则
这里写图片描述
就会来到/error请求
就会被BasicErrorController处理

BasicErrorController

基本错误处理
这里写图片描述
从配置文件中,获取server.error.path的值

如果,没有配置,获取error.path的值
如果,也没有配置,获取/error的值

处理默认/error请求
这里写图片描述

处理方式

提供了两种方式
处理/error请求

ModelAndView
产生html类型的数据
浏览器发送的请求,来到这个方法处理

ResponseEntity
产生json数据
其他客户端,来到这个方法处理

识别原理

根据请求头来识别
浏览器的请求头
这里写图片描述
客户端的请求头
这里写图片描述

ModelAndView

处理浏览器请求
去哪个页面,作为错误页面
错误页面,包含的页面地址,页面内容

resolveErrorView

获取所有的异常视图解析器
ErrorViewResolver得到ModelAndView

如果,得到了就返回
如果,得不到就为null
这里写图片描述
响应页面,去哪个页面
是由DefaultErrorViewResolver解析得到的

DefaultErrorViewResolver

默认错误视图解析器
这里写图片描述
ModelAndView
将视图名,拼在error/后面
默认SpringBoot可以去找到一个页面

比如,error/404
如果,模板引擎可以解析
这个页面地址,就用模板引擎解析

模板引擎可用的情况下
返回到errorViewName指定的视图地址
这里写图片描述

resolveResource

模板引擎不可用
就在静态资源文件夹下
找errorViewName对应的页面 error/404.html

如果,静态资源文件夹下存在,返回这个页面
如果,静态资源文件夹下不存在,返回null
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值