【視頻筆記】Spring boot進階之Web進階

該筆記是看視頻的記錄,視頻地址:http://www.imooc.com/learn/810

一、使用@Valid做表單驗證

domain中定義valid規(guī)則
Controller增加Valid注解,并且對BindingResult做處理

二、使用AOP處理請求

請求方法前打印日志
請求方法后打印日志
獲取返回值
定義一個@Pointcut然后引用

三、統(tǒng)一異常處理

1、異常情況處理

成功則返回新增的girl,失敗返回錯誤信息
成功時:返回了成功的對象
失敗時:返回錯誤信息

2、更好的處理方式

上面的返回結(jié)果并不友好,不方便前端處理,我們期望的是下圖這樣的:包括一個code表示成功失敗,msg表示處理結(jié)果信息,data表示對象信息

友好的返回結(jié)果

下面來看實現(xiàn):


定義一個Result類作為返回對象
定義一個Util方便操作
引用代碼

3、Exception的處理

當系統(tǒng)發(fā)生異常時


當系統(tǒng)發(fā)生異常時

前臺就會收到這樣的消息


前臺就會收到這樣的消息

這不是我們想要的,我們希望發(fā)生異常的時候依然可以正常返回,可以通過一個ExceptionHandle來實現(xiàn)

ExceptionHandle中指定handle的異常類型和返回值

就得到了我們想要的返回格式

就得到了我們想要的返回格式

4、異常精細化處理:為異常編號

實現(xiàn)一個Exception的子類,增加code屬性
不同業(yè)務(wù)拋出不同的code
捕獲異常,如果是GirlException,則拋出返回的code,否則使用統(tǒng)一的code

5、異常編號用枚舉類型代替

100、101這種編號寫在具體業(yè)務(wù)邏輯里面顯然不妥,時間長了,前臺拋出一個100的異常,我們很難再想起這個100到底代表什么,也不好找到這些代碼,通常的做法是把所有異常編號都放在一個枚舉類型中,這樣就好查啦

如下圖,我們新建了一個枚舉類,有了這個枚舉類,我們再增加異常類型、修改異常提示,就再也不用去茫茫code海里面去搜索了。

1、新建一個枚舉類,定義異常編號和中文提示
2、throw異常里面,就不寫code和msg了,用枚舉值代替
3、修改GrilException的參數(shù)
4、調(diào)用結(jié)果也是一樣的

四、單元測試

1、測試Service

測試Service
測試Controller

2、測試API

測試API:Status
測試API:返回值
上面的例子是匹配返回值和abc,顯然不相等,所以報錯

maven打包的時候也會自動運行這些單元測試,執(zhí)行mvn clean package

自動運行單元測試,并報出一個異常
最后編輯于
?著作權(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)容