SpringBoot错误处理底层组件和异常处理流程分析
一、默认规则
默认情况下,Spring Boot提供 /error 处理所有错误的映射
对于机器客户端,它将生成 JSON 响应,其中包含错误,HTTP状态和异常消息的详细信息。
对于浏览器客户端,响应一个 “whitelabel” 错误视图,以HTML格式呈现相同的数据
如果我们自己要自定义错误页样式,可以在 resources/static 或者 resources/templates 下创建一个 error 文件夹,在error里边放咱们自己的错误页面,SpringBoot就可以解析到
二、异常处理自动配置原理
为什么会有这些默认规则呢?肯定是底层的自动配置帮我们配置的。来看一下它在哪里
来自动配置包的 web 文件夹找一下,找到一个 servlet\error 包,这里边就专门保存有关自动处理的一些东西,来到自动配置类 ErrorMvcAutoConfiguration
在这里先大概介绍一下里边都做了什么
首先,它里边的绑定了下面两个配置文件
然后给容器中放了几个组件
组件1:DefaultErrorAttributes,用来定义错误页面中可以包含哪些数据