Spring4筆記----AOP的返回通知和異常通知

返回通知:

無論連接點正常返回還是拋出異常,後置通知都會執行。如果只想在連接點返回的時候記錄日誌,應使用返回通知代替後置通知。

在返回通知中,只需要在@AfterReturning註解中添加returning屬性,就可以訪問連接點的返回值。

必須在通知方法的簽名中添加一個同名參數,在運行時Spring AOP會通過這個參數傳遞給返回值。


在方法法正常結束後執行的代碼

 返回通知是可以訪問到方法的返回值的!

@AfterReturning(value="execution(* com..Spring4.AOP.*.*(..))",
			returning="result")
	public void afterReturning(JoinPoint joinPoint, Object result){
		String methodName = joinPoint.getSignature().getName();
		System.out.println("The method " + methodName + " ends with " + result);
	}


異常通知

只在連接點拋出異常時才執行異常通知

throwing 屬性添加到 @AfterThrowing 註解中, 也可以訪問連接點拋出的異常. Throwable 是所有錯誤和異常類的超類. 所以在異常通知方法可以捕獲到任何錯誤和異常.

如果只對某種特殊的異常類型感興趣, 可以將參數聲明爲其他異常的參數類型. 然後通知就只在拋出這個類型及其子類的異常時才被執行.


在目標方法出現異常時會執行的代碼.
可以訪問到異常對象; 且可以指定在出現特定異常時在執行通知代碼

@AfterThrowing(value="execution(* com..Spring4.AOP.*.*(..))",
			throwing="e")
	public void afterThrowing(JoinPoint joinPoint, Exception e){
		String methodName = joinPoint.getSignature().getName();
		System.out.println("The method " + methodName + " occurs excetion:" + e);
	}


發佈了121 篇原創文章 · 獲贊 81 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章