java
2021-05-23
2021-05-23
宁鸣而死,不默而生。——胡适
宁鸣而死,不默而生。——胡适
在开发中我们经常看到这样一个页面

意思是告诉你,没有映射到/error对应的视图
这个是从哪里出现的呢?
我们找到org.springframework.boot.autoconfigure.web.servlet.error包下面

这里我们看到ErrorMvcAutoConfiguration,因为springboot自动装配就是这些xxxAutoConfiguration去完成的
打开一看,发现:诶?!这里有这样一段代码

这段代码告诉我们,如果在没注入ErrorViewResolver并且注入了DispatcherServlet这个bean的情况下,则注入一个叫DefaultErrorViewResolver的bean
如果你现在就想知道怎么修改默认的/error路径映射?
那可以直接注入一个ErrorViewResolver
在你的任意一个配置类中,我建议是放到Mvc配置类中
1 | |
那我们接着来探讨,为什么默认会跳转到/error页面呢?
因为我们如果没注入ErrorViewResolver的话,ErrorMvcAutoConfiguration里
里注入了DefaultErrorViewResolver
而里面对于ErrorViewResolver接口的实现是
1 | |
找不到这些页面的话

自然而然就会返回默认的org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration.StaticView
而里面的实现

正好是我们一开始看到的错误页面啦~
所以再说一遍,配置如下即可
1 | |