-
默認exception有message信息,所以不需要重復定義
錯誤處理需要一個統一的枚舉(Enum)類型來維護,這樣在異常處理邏輯變得復雜的時候可以
減小維護難度,增加代碼復用性!
查看全部 -
異常數據不能與result統一
查看全部 -
? ? 前置通知(@Before):執行目標方法前攔截到的方法。只需要一個連接點,JoinPoint,即可獲取攔截目標方法以及請求參數。
? ? 后置通知(@After):執行目標方法后攔截到的方法,不管方法是否拋出異常,都會走這個方法。只需要一個連接點,JoinPoint,即可獲取當 前結束的方法名稱。
? ? 返回通知(@AfterReturning):在方法正常執行通過之后執行的通知叫做返回通知。此時注意,不僅僅使用JoinPoint獲取連接點信息,同時要在返回通知注解里寫入,resut="result"。在切面方法參數中加入Object result,用于接受返回通知的返回結果。如果目標方法方法是void返回類型則返回NULL
? ? 異常通知(@AfterThrowing): 在執行目標方法過程中,如果方法拋出異常則會走此方法。和返回通知很相似,在注解中加入,throwing="ex",在切面方法中加入Exection ex用于接受異常信息
? ? 環繞通知(@Around):環繞通知需要攜帶ProceedingJoinPoint 這個類型的參數,環繞通知類似于動態代理的全過程ProceedingJoinPoint類型的參數可以決定是否執行目標函數環繞通知必須有返回值。其實就是包含了所有通知的全過程
查看全部 -
不要寫重復代碼:
LOW
修改起來麻煩
查看全部 -
編寫一個記錄請求的類,類里面有一個屬性,查看全部
-
使用Aop處理的時候加注解@Aspact @Component查看全部
-
execution()是最常用的切點函數,其語法如下所示:
?整個表達式可以分為五個部分:
?1、execution(): 表達式主體。
?2、第一個*號:表示返回類型,*號表示所有的類型。
?3、包名:表示需要攔截的包名,后面的兩個句點表示當前包和當前包的所有子包,com.sample.service.impl包、子孫包下所有類的方法。
?4、第二個*號:表示類名,*號表示所有的類。
?5、*(..):最后這個星號表示方法名,*號表示所有的方法,后面括弧里面表示方法的參數,兩個句點表示任何參數。
查看全部 -
切面對象的中的@before @after注解指的是切面之前或之后執行的動作。
查看全部 -
兩個共同部分可以作為切面
查看全部 -
在領域模型girl中聲明如下:
?@Min(value?=?18,?message?=?"未成年少女禁止入門")
?在控制器的驗證方法中加入:
?@PostMapping(value?=?"/girls") ????public?Result?girlAdd(@Valid?Girl?girl,?BindingResult?bindingResult)?{ ????????if?(bindingResult.hasErrors())?{ ????????????return?ResultUtil.error(1,?bindingResult.getFieldError().getDefaultMessage()); ????????} ????????girl.setCupSize(girl.getCupSize()); ????????girl.setAge(girl.getAge()); ????????return?ResultUtil.success(girlRepository.save(girl)); ????}
@valid用于驗證參數的正確性,BindingResult對象用來顯示錯誤信息!
查看全部 -
AOP面向切面編程給我一個簡單明了的例子就是:web應用中所有的URI請求都要經過安全驗證,這是所有對象都有的共同性,顯然,這么對象之間沒有必要構造的繼承關系,因為那樣不太合適。面向切面的核心體現在對URI所對應的資源進行響應前,構造一個切入點,所有URI請求都要經過切入點的過濾和處理。大概這就是AOP
查看全部 -
mvn clean package 用于項目打包;
mvn clean package -Dmaven.test.skip=true 用于打包跳過單元測試
查看全部 -
@AutoConfigureMockMvc用于構造請求字符串;
查看全部 -
錯誤處理需要一個統一的枚舉(Enum)類型來維護,這樣在異常處理邏輯變得復雜的時候可以
減小維護難度,增加代碼復用性!
查看全部 -
Spring框架只會對RuntimeException進行事務回滾!
查看全部
舉報