一篇文章带你从源码分析 SpringBoot 的异常处理

    技术2025-08-11  7

    文章目录

    一、起因 二、源码分析 三、自定义异常数据 四、自定义异常视图

    一、起因

    我们已经知道如果动态页面和静态页面同时定义了异常处理页面,例如 classpath:/static/error/404.html 和 classpath:/templates/error/404.html 同时存在时,默认使用动态页面

    即完整的错误页面查找方式应该是这样:发生了400错误--》查找动态 400.html 页面--》查找静态 400.html --》查找动态 4xx.html--》查找静态 5xx.html

    至于为什么有这样的机制,本篇文章就从源码来分析一下。

    二、源码分析

    首先按两下“shift”键,查询ErrorMvcAutoConfiguration类:

    从其中挑选关键的代码来说一下

    首先是DefaultErrorAttributes,如果我们没有提供则使用系统自带的,里面提供了一些异常数据

    @Bean @ConditionalOnMissingBean 南淮北安 认证博客专家 深度学习 Java Python 牛年大吉,牛气冲天!!!
    Processed: 0.009, SQL: 12