现如今每一个网站都会有自己的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
如上配置就可以了