springboot学习(八十五) 解决springboot3.2找不到资源无法抛出404错误的问题

前言

springboot3.2以下可以定义ErrorPageRegistrar将404错误转发到一个接口地址,但升级到springboot3.2(spring6.1)后,该配置不生效,抛出了500错误。

以前的错误页面处理如下:

@ConditionalOnClass(ErrorPageRegistry.class)
public class ErrorPageAutoConfiguration implements ErrorPageRegistrar {
   
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
   
        log.info("-----------错误页面路径配置------------");
        registry.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"),
                new ErrorPage(HttpStatus.FORBIDDEN, "/403"),
                new ErrorPage(HttpStatus.BAD_REQUEST, "/400"),
                new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500"));
        log.info("-----------错误页面路径配置结束------------");
    }
}

解决方式

通过查看日志发现springboot3.2默认寻找静态资源,在找不到资源后抛出了NoResourceFoundException,通过ExceptionAdivisor抓取做了处理,而并没有对NoResourceFoundException进行特殊处理,默认进入了500错误。

ExceptionAdivisor中添加一组对此异常的处理,即可:

    @ExceptionHandler(value = NoResourceFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public ResponseEntity to404Exception(NoResourceFoundException e) {
   
        AccessLogUtils.log(SpringUtils.getRequest(), _404);
        return res(HttpStatus.NOT_FOUND.value(), "找不到资源", e);
    }

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 09:40:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 09:40:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 09:40:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 09:40:04       18 阅读

热门阅读

  1. 【springboot 事件发布机制源码浅析】

    2024-01-01 09:40:04       36 阅读
  2. 10-2 HNCST - 多线程4 - 线程同步Condition——python

    2024-01-01 09:40:04       36 阅读
  3. ajax 下载文件(excel导出)

    2024-01-01 09:40:04       39 阅读
  4. vue怎么跨页面传参

    2024-01-01 09:40:04       43 阅读
  5. 纯前端 文件预览方法汇总

    2024-01-01 09:40:04       44 阅读
  6. 一文详解pyspark常用算子与API

    2024-01-01 09:40:04       46 阅读
  7. 八股文打卡day16——计算机网络(16)

    2024-01-01 09:40:04       31 阅读
  8. 元旦假期的第二天:干家务

    2024-01-01 09:40:04       32 阅读
  9. git常用命令详解

    2024-01-01 09:40:04       34 阅读
  10. Debian安装k8s记录

    2024-01-01 09:40:04       31 阅读