17 springboot 定製錯誤響應(2)

2022-06-08 16:45:09 字數 2907 閱讀 6096

1.1、有模板引擎的情況下;error/狀態碼; 

【將錯誤頁面命名為 (錯誤狀態碼.html)

放在模板引擎資料夾裡面的error資料夾下

發生此狀態碼的錯誤就會來到 對應的頁面

可以使用4xx、5xx作為錯誤頁面的檔名來匹配這種型別的所有錯誤

精確優先(優先尋找精確的狀態碼.html);

頁面能獲取的資訊( defaulterrorattributes)

timestamp:時間戳

status:狀態碼

error:錯誤提示

exception:異常物件

message:異常訊息

errors:jsr303資料校驗的錯誤都在這裡

這時出現400錯誤碼時:

1.2、沒有模板引擎(模板引擎找不到這個錯誤頁面),靜態資源檔案下找

1.3、預設以上兩中都沒有的時候,預設來到springboot的預設頁面

自定義usernotexistexception異常

public

class usernotexistexception extends

runtimeexception

}

設定什麼情況下出現這個異常

@responsebody

public string hello(@requestparam("user")string user)

return "hello world";

}

異常頁面:

<

h1>status:[[$]]

h1>

<

h1>timestamp:[[$]]

h1>

<

h1>error:[[$]]

h1>

<

h1>

message:[[$]]

h1>

此時訪問符合出現異常的鏈結

頁面顯示了我們自定義異常返回的資訊

其他客戶端的訪問:

3)、自定義異常處理返回json資料

修改自定義的異常處理器

@controlleradvice

public

class

myexceptionhandler

}

5xx.html中的**回顯;

<

h1>status:[[$]]

h1>

<

h1>timestamp:[[$]]

h1>

<

h1>extmessage1:[[$]]

h1>

<

h1>extmessage2:[[$]]

h1>

web瀏覽器測試(返回的是html頁面)

而其它客戶端返回的是json資料(這裡就不截圖了,自行測試)

自定義errorattributes類

//

給容器中加入我們自定義的errorattributes@component

public

class myerrorattributesextendsdefaulterrorattributes

}

修改5xx.html

<

h1>status:[[$]]

h1>

<

h1>timestamp:[[$]]

h1>

<

h1>extmessage1:[[$]]

h1>

<

h1>extmessage2:[[$]]

h1>

<

h1>company:[[$]]

h1>

web瀏覽器訪問:

其它客戶端訪問返回的json字串中也有company屬性,說明全域性返回資訊配置成功

峰哥說技術 17 Spring Boot整合AOP

峰哥說技術 2020庚子年重磅推出 戰勝病毒 我們在行動 aop是aspect oriented programming 的縮寫,意為面向切面程式設計。面向切面程式設計的目標就是分離關注點。什麼是關注點呢?就是關注點,就是你要做的事情。它可以靈活組合,達到一種可配置的 可插拔的程式結構。它的一些常用...

SpringBoot定製錯誤頁面

1 有模板引擎的情況下,例如404錯誤,將會在thymeleaf的templates的error下尋找404.html,如果找不到再尋找4xx.html 所有4開頭的錯誤狀態碼如果找不到特定的html頁面將會指向4xx.html 頁面可以獲取到的資訊 timestamp 時間戳 status 狀態碼...

springBoot定製自己的banner

每當我們啟動springboot專案時,控制台上總會列印這樣的logo 實際上是springboot在這個地方放置了乙個彩蛋,雖然沒有什麼實際的意義,但的確增加了不少樂趣 當我們不想要或者想要修改他時,springboot也給了我們隱藏和修改的空間。中隱藏 public static void ma...