-
這種方式,會(huì)將異常捕獲,然后返回的內(nèi)容就會(huì)按照我們想要的方式返回
過(guò)程:
service里面如果驗(yàn)證不通過(guò)的話(huà),就直接往外面拋異常
controller直接調(diào)用service的方法
這個(gè)時(shí)候不需要對(duì)service的返回進(jìn)行判斷,因?yàn)橐呀?jīng)通過(guò)拋出異常來(lái)解決問(wèn)題了
由expection handle來(lái)處理這個(gè)異常
查看全部 -
如果不建異常捕獲的包,拋出的內(nèi)容會(huì)很多,我們需要建立捕獲異常的方法
查看全部 -
拋異常會(huì)一層一層往外拋,從service,然后接著拋到controller
查看全部 -
異常處理的統(tǒng)一格式,json:code, msg, data
查看全部 -
@AfterReturn注解,可以在console打印出返回的object及內(nèi)容(可以像添加getter和setter一下添加toString方法)
查看全部 -
獲取類(lèi)方法的方式:
首先傳參加入joinPoint
然后在輸出時(shí)使用joinPoint的方法
查看全部 -
日志的記錄方式,和在string里面進(jìn)行輸出的傳參方式
查看全部 -
將@Before請(qǐng)求這個(gè)路徑前的作輸出改成實(shí)際要做的操作,記錄一些信息(http請(qǐng)求內(nèi)容):
url:
注意HttpServletRequest要選javax.servlet.http
method
ip
類(lèi)方法
參數(shù)
查看全部 -
采用記日志的方式打印的好處:能夠顯示(時(shí)間 INFO 進(jìn)程號(hào) 【nio-端口-exec-1】 哪個(gè)方法哪個(gè)包下打的日志)
查看全部 -
實(shí)際邏輯代碼部分:
@After注解:注解括號(hào)里面的內(nèi)容可以和Before注解寫(xiě)得一模一樣
這里發(fā)現(xiàn)我們會(huì)有重復(fù)的代碼(壞處:1太low,2修改起來(lái)會(huì)特別麻煩),解決方案:用@Printcut注解單獨(dú)對(duì)相同部分定義一個(gè)方法,然后使用這個(gè)方法名作為代替放入Before和After注解里面
System.out.println的另一種方式,Logger
在類(lèi)內(nèi)部聲明Logger(org.slf4j: spring自帶的日志框架,底層實(shí)現(xiàn)使用的是logback)
在方法里面使用logger.info或者logger.error打印
查看全部 -
正式邏輯代碼:
Http請(qǐng)求到這些api的時(shí)候就把這些記錄下來(lái):@Before注解表示在方法執(zhí)行之前就執(zhí)行這個(gè)方法(記得有個(gè)小技巧,先寫(xiě)下下面的public void log(){}代碼框架,這樣才會(huì)有上層的Before的內(nèi)容提示)
攔截方法時(shí),在方法的參數(shù)里面加..表示不管里面什么參數(shù),都會(huì)進(jìn)行攔截
如果要對(duì)所有的方法都進(jìn)行攔截,就寫(xiě)成controller.*(..)
查看全部 -
防止沒(méi)有登錄的用戶(hù)對(duì)api進(jìn)行調(diào)用成功
(通常方法是在每個(gè)api前面進(jìn)行添加判斷,這樣每個(gè)api都加太累了)
使用AOP來(lái)進(jìn)行的步驟:
添加依賴(lài):spring-boot-starter-aop
(往常的做法是要在啟動(dòng)類(lèi)加一個(gè)注解,但是aop不需要加)
建立處理文件:新建一個(gè)包叫aspect,然后在底下建一個(gè)java class(不要選aspect)叫HttpAspect,加上注解@Aspect和@Component,然后開(kāi)始寫(xiě)邏輯代碼
查看全部 -
構(gòu)造方法的解決方案來(lái)進(jìn)行控制是否登錄的用戶(hù)才可以訪(fǎng)問(wèn)api的方式行不通:當(dāng)spring程序運(yùn)行的時(shí)候就會(huì)把這些類(lèi)給實(shí)力化了,當(dāng)一次http請(qǐng)求來(lái)的時(shí)候不會(huì)再執(zhí)行這個(gè)構(gòu)造方法了,所以這樣是行不通的。
查看全部 -
事務(wù)只會(huì)對(duì)RuntimeException 進(jìn)行事務(wù)回滾,不會(huì)對(duì)Exception進(jìn)行回滾。
查看全部 -
AOP的例子
查看全部
舉報(bào)