Spring setThrowExceptionIfNoHandlerFound 引發(fā)的文件上傳問題。

在springboot引用中,我們寫了一套restful的接口,同時對error進行全局異常處理,但是在發(fā)現(xiàn)在沒有handler接口的時候,并沒有報錯,而是跳轉(zhuǎn)到了404的錯誤頁面,在方法上注解了@ExceptionHandler(NoHandlerFoundException.class) 其實并沒有被調(diào)用。在谷歌上搜索了一番,找到了一些解決方法,

@Bean  
public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {  
    ServletRegistrationBean registration = new ServletRegistrationBean(  
            dispatcherServlet);  
    dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);  
    return registration;  
} 

在設(shè)置上面的配置后,用起來沒有問題。一段時間后,有個需求需要添加一個接口,上傳頭像。開發(fā)完后,始終不能上傳文件,然后逐步排查,發(fā)現(xiàn)就是我們自定義了ServletRegistrationBean 而少了很多配置。在這個bean里面有個MultipartConfigElement屬性,用于配置文件上傳的配置。我們自定義了后,系統(tǒng)就沒有自動配置了(DispatcherServletAutoConfiguration)。
后來找了半天,其實setThrowExceptionIfNoHandlerFound可以在配置文件中進行配置,就不用自定義bean。

spring.mvc.throw-exception-if-no-handler-found: true

配置后,就妥妥的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容