解决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

如上配置就可以了

上一篇下一篇

猜你喜欢

热点阅读