javascript
Spring Boot自定义错误页面
Spring Boot以一種新的微服務(wù)的方式來替代以Spring Framework構(gòu)建項(xiàng)目的傳統(tǒng)方式,我已經(jīng)計(jì)劃在后續(xù)的項(xiàng)目開發(fā)中使用它。它已經(jīng)幫我們做了90%的工作,剩下10%的工作需要我們自己去完成。對(duì)于我來說,自定義錯(cuò)誤頁面就是其中之一。比如404錯(cuò)誤,如果不處理的話,會(huì)出現(xiàn)“This application has no explicit mapping for /error, so you are seeing this as a fallback.”的錯(cuò)誤信息,如圖所示:
Spring Boot默認(rèn)使用嵌入式Tomcat,默認(rèn)沒有頁面來處理404等常見錯(cuò)誤。因此,為了給用戶最佳的使用體驗(yàn),404等常見錯(cuò)誤需要我們自定義頁面來處理。
我們需要用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer類來實(shí)現(xiàn)該功能,在Spring Boot的啟動(dòng)類(main方法所在類)當(dāng)中,添加如下代碼:
@Bean public EmbeddedServletContainerCustomizer containerCustomizer() {return (container -> {ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");container.addErrorPages(error401Page, error404Page, error500Page);}); }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
這是使用Java?8的lambda表達(dá)式來簡(jiǎn)化實(shí)現(xiàn)的方式,在代碼中創(chuàng)建了三個(gè)ErrorPage實(shí)例來處理三個(gè)通用的HTTP錯(cuò)誤狀態(tài)碼,并將他們添加到Container當(dāng)中。ErrorPage類是一個(gè)封裝了錯(cuò)誤信息的類,它可以在Jetty和Tomcat環(huán)境下使用。
這是使用Java?7內(nèi)部類的一個(gè)等價(jià)實(shí)現(xiàn)方式:
@Bean public EmbeddedServletContainerCustomizer containerCustomizer() {return new EmbeddedServletContainerCustomizer() {@Overridepublic void customize(ConfigurableEmbeddedServletContainer container) {ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");container.addErrorPages(error401Page, error404Page, error500Page);}}; }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
錯(cuò)誤頁面需要放在Spring Boot web應(yīng)用的static內(nèi)容目錄下,它的默認(rèn)位置是:src/main/resources/static,如下圖所示:
點(diǎn)擊鏈接下載圖中的三個(gè)文件的壓縮文件,這些文件使用?HTML5 Boilerplate制作。
現(xiàn)在,就可以看到一個(gè)簡(jiǎn)易版本的錯(cuò)誤頁面,可以根據(jù)自己的需要對(duì)它進(jìn)行一些美化。
總結(jié)
以上是生活随笔為你收集整理的Spring Boot自定义错误页面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot项目打包成war并
- 下一篇: Spring Boot 批量上传: Th