摘要:時(shí)間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼個(gè)人學(xué)習(xí)源碼第一章課程介紹課程介紹本課程緊接著小時(shí)學(xué)會(huì)課程,請(qǐng)先看入門課。異常返回通知在連接點(diǎn)拋出異常后執(zhí)行。
時(shí)間:2017年3月19日星期日
說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學(xué)示例源碼:https://github.com/zccodere/s...
個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s...
1-1 課程介紹
本課程緊接著《2小時(shí)學(xué)會(huì)SpringBoot》課程,請(qǐng)先看入門課。
傳送門:https://segmentfault.com/a/11...
web進(jìn)階
1.使用@Valid表單驗(yàn)證 2.使用AOP處理請(qǐng)求 3.統(tǒng)一異常處理 4.單元測(cè)試第二章:Web進(jìn)階 2-0 表單驗(yàn)證
1.在實(shí)體Bean里需要校驗(yàn)的字段上面添加注解
2.在接收參數(shù)時(shí),使用@Valid注解進(jìn)行校驗(yàn)
2-1 使用AOP處理請(qǐng)求(上)AOP統(tǒng)一處理請(qǐng)求日志
也談AOP
1.AOP是一種編程方式 --與語(yǔ)言無關(guān),是一種程序設(shè)計(jì)思想 --面向切面(AOP)Aspect Oriented Programming --面向?qū)ο螅∣OP)Object Oriented Programming --面向過程(POP)Procedure Oriented Programming 2.面向過程到面向?qū)ο? --面向過程:假如下雨了,我打開了雨傘 --面向?qū)ο螅禾鞖?>下雨,我->打傘 3.換個(gè)角度看世界,換個(gè)姿勢(shì)處理問題 4.將通用邏輯從業(yè)務(wù)邏輯中分離出來
AOP示例
提取執(zhí)行相同的代碼為一個(gè)切面
2-2 使用AOP處理請(qǐng)求(中)編寫切面通知執(zhí)行方法
@Aspect:聲明當(dāng)前類是一個(gè)切面處理類
@Component:聲明當(dāng)前類是一個(gè)Bean,由Spring的IOC容器進(jìn)行管理
@Pointcut:聲明需要處理的切點(diǎn)
spring aop通知(advice)分成五類:
@Before:前置通知[Before advice]:在連接點(diǎn)前面執(zhí)行,前置通知不會(huì)影響連接點(diǎn)的執(zhí)行,除非此處拋出異常。
@AfterReturning:正常返回通知[After returning advice]:在連接點(diǎn)正常執(zhí)行完成后執(zhí)行,如果連接點(diǎn)拋出異常,則不會(huì)執(zhí)行。
@AfterThrowing:異常返回通知[After throwing advice]:在連接點(diǎn)拋出異常后執(zhí)行。
@After:返回通知[After (finally) advice]:在連接點(diǎn)執(zhí)行完成后執(zhí)行,不管是正常執(zhí)行完成,還是拋出異常,都會(huì)執(zhí)行返回通知中的內(nèi)容。
@Around:環(huán)繞通知[Around advice]:環(huán)繞通知圍繞在連接點(diǎn)前后,比如一個(gè)方法調(diào)用的前后。這是最強(qiáng)大的通知類型,能在方法調(diào)用前后自定義一些操作。環(huán)繞通知還需要負(fù)責(zé)決定是繼續(xù)處理join point(調(diào)用ProceedingJoinPoint的proceed方法)還是中斷執(zhí)行。
什么是異常處理?
如果不加異常處理的話,程序出錯(cuò)了,用戶可能不知道是啥原因。加上處理后,比如加上友好信息等用戶能知道錯(cuò)在哪。
為什么要統(tǒng)一異常處理?
1、在框架層面封裝checked exception,將其轉(zhuǎn)化為unchecked exception,避免開發(fā)過程中編寫繁冗的try...catch代碼。 2、業(yè)務(wù)層面的開發(fā),根據(jù)程序代碼職責(zé)定義不同的RuntimeException(它就是unchecked exception,一般定義為RuntimeException的子類) 3、通過前兩個(gè)觀點(diǎn),系統(tǒng)中自定義的異常將只存在unchecked exception,系統(tǒng)只在于客戶端交換數(shù)據(jù)的上層,設(shè)置統(tǒng)一異常處理機(jī)制,并將一些異常轉(zhuǎn)化為用戶所能理解的信息傳達(dá)給用戶。 4、其他如業(yè)務(wù)層,數(shù)據(jù)持久層,等底層只負(fù)責(zé)將異常拋出即可,但要注意不要丟失掉異常堆棧(這一點(diǎn)是初學(xué)者容易犯的一個(gè)錯(cuò)誤)。
以上答案內(nèi)容節(jié)選自:http://redhacker.iteye.com/bl...
例子:獲取某女生的年齡并判斷,小于10,返回“應(yīng)該在上小學(xué)”,大于10且小于16,返回“可能在上初中”。
可能比較容易想到的解決方案是:通過標(biāo)識(shí)來傳遞信息,比如
2-5 統(tǒng)一異常處理(中)使用統(tǒng)一異常處理后,則為另一種解決方式
步驟一:自定義異常
步驟二:全局異常統(tǒng)一處理類
步驟三:使用自定義異常
2-6 統(tǒng)一異常處理(下)使用枚舉進(jìn)行優(yōu)化響應(yīng)編碼及響應(yīng)消息,便于統(tǒng)一維護(hù)
步驟一:定義枚舉類
步驟二:優(yōu)化自定義異常
步驟三:使用自定義異常
2-7 單元測(cè)試目錄
測(cè)試Service 測(cè)試API
測(cè)試Service
測(cè)試Controller
第三章:課程總結(jié) 3-1 課程總結(jié)web進(jìn)階
1.使用@Valid表單驗(yàn)證 2.使用AOP處理請(qǐng)求 3.統(tǒng)一異常處理 4.單元測(cè)試
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66835.html
摘要:時(shí)間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。整體目錄結(jié)構(gòu)如下項(xiàng)目文件用于數(shù)據(jù)持久化配置項(xiàng)目配置配置視圖解析器配置靜態(tài)資源映射配置配置配置自定義指令配置解析器配置,類似于項(xiàng)目啟動(dòng)類新建,注冊(cè)配置類,并將其和當(dāng)前關(guān)聯(lián)。 時(shí)間:2017年3月19日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無個(gè)人學(xué)習(xí)源碼:https://githu...
摘要:小時(shí)學(xué)會(huì)學(xué)習(xí)總結(jié)時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼暫無。數(shù)據(jù)庫(kù)操作下第六章事務(wù)管理事務(wù)管理只有查詢的時(shí)候不加事務(wù),其它任何操作都要加事務(wù)。第七章課程回顧課程回顧總結(jié)介紹安裝配置的使用數(shù)據(jù)庫(kù)操作 《2小時(shí)學(xué)會(huì)SpringBoot》學(xué)習(xí)總結(jié) 時(shí)間:2017年2月18日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示...
摘要:因?yàn)槟承┰?,不方便在這里直接發(fā)送百度鏈接,關(guān)注我的微信公眾號(hào)面試通關(guān)手冊(cè)回復(fù)資源分享第一波即可領(lǐng)取。然后大家還有什么問題的話,可以在我的微信公眾號(hào)后臺(tái)面試通關(guān)手冊(cè)給我說或者加我微信,我會(huì)根據(jù)自己的學(xué)習(xí)經(jīng)驗(yàn)給了說一下自己的看法。 這是一篇針對(duì)Java初學(xué)者,或者說在Java學(xué)習(xí)路線上出了一些問題(不知道該學(xué)什么、不知道整體的學(xué)習(xí)路線是什么樣的) 第一步:Java基礎(chǔ)(一個(gè)月左右) 推薦...
時(shí)間:2017年07月09日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 課程概述 主要內(nèi)容 驗(yàn)證碼歷史 課程內(nèi)容 不同方案對(duì)比 設(shè)計(jì)與實(shí)現(xiàn) 總結(jié) 1-2 驗(yàn)證碼歷史 驗(yàn)證碼歷史 無驗(yàn)證碼:垃圾騷擾 Luis von Ahn:Captcha 不斷...
閱讀 3958·2021-10-19 13:23
閱讀 2337·2021-09-09 11:37
閱讀 2520·2019-08-29 15:20
閱讀 3414·2019-08-29 11:08
閱讀 1676·2019-08-26 18:27
閱讀 1774·2019-08-23 12:20
閱讀 3040·2019-08-23 11:54
閱讀 2558·2019-08-22 15:19