解决Spring MVC no handler抛出异常
2020-06-17 本文已影响0人
范er_er
现如今每一个网站都会有自己的404页面,但是作为一个纯后端的应用,肯定是没有静态资源的,这辈子也不可能会有静态资源
对于Spring MVC它有自己的一套404返回,例如这样
{
"timestamp": "2018-09-26T17:03:41.161+0800",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/process-instance/overview1"
}
但是肯定不是我们所希望的
如果使用的是Spring Boot,可以在application.properties中设置
spring.mvc.throw-exception-if-no-handler-found=true
该参数对应的就是DispatcherServlet中的throwExceptionIfNoHandlerFound
再在全局异常处理中利用@ExceptionHandler捕获NoHandlerFoundException就可以了
但是并没有生效,原因是Spring会默认给你加上ResourceHttpRequestHandler这个handler,也就不会出现noHandler的情况了,该handler是用来处理资源使用的
spring.resources.add-mappings=false
如上配置就可以了