@before()
前置通知:宣告該方法為方法執行之前的通知
//宣告該方法是乙個前置通知
@before("execution(public int com.spring.spring.impl.aitihmeticcalculator.add(int,int))")
public void beforemethod(joinpoint joinpoint)
@after()
後置通知:宣告該方法為方法執行之後的通知(無論結果發生異常)都執行的通知
後置通知還不能訪問目標方法的執行結果
//宣告該方法是乙個後置通知(無論是否發生異常),執行的通知
//後置通知中還不能訪問目標方法的執行結果
@after("execution(* com.spring.spring.impl.aitihmeticcalculator.*(int ,int))")
public void aftermethod(joinpoint joinpoint)
@afterreturning(value="",returning="")返回通知:宣告該方法是方法正常結束執行之後的**,返回通知可以拿到返回值
//宣告該方法是返回通知,在方法正常結束之後執行的**
//返回通知是可以訪問到方法的返回值的
@afterreturning(value = "execution(* com.spring.spring.impl.aitihmeticcalculator.*(int ,int))",returning = "result")
public void afterreturning(joinpoint joinpoint,object result)
異常通知:在方法丟擲異常時執行的**,可以指定異常型別
//在目標方法執行異常時執行的**
//可以訪問到異常物件,可以指定出現特定異常時出現的通知
@afterthrowing(value = "execution(* com.spring.spring.impl.aitihmeticcalculator.*(int ,int))",throwing = "ex")
public void afterthrowing(joinpoint joinpoint,exception ex)
環繞通知:環繞通知是最全的,它包括動態**的全過程,環繞通知必須有返回值,返回值即為目標方法的返回值
//環繞通知需要攜帶proceedingjoinpoint 型別的引數
//環繞通知類似於動態**的全過程 proceedingjoinpoint 型別的引數可以決定是否執行目標方法
//且環繞通知必須有返回值,返回值即為目標方法的返回值
@around("execution(* com.spring.spring.impl.aitihmeticcalculator.*(int ,int))")
public object aroundmethod(proceedingjoinpoint pjd) catch (throwable throwable) finally
return result;
}
spring aop五種通知及通知中傳遞引數
定義切面 包含五種通知 import org.aspectj.lang.proceedingjoinpoint public class myxmlserviceaop public void aroundhandler proceedingjoinpoint jointpoint catch th...
Spring AOP學習5種通知
前置通知 before 在連線點執行前執行該通知 正常返回通知 afterreturning 在連線點正常執行完後執行該通知,若目標方法執行異常則不會執行該通知 異常返回通知 afterthrowing 在連線點執行丟擲異常時執行該通知 後置通知 after finally 在連線點執行完成後 不管...
spring AOP前後通知
在搭建spring的時候要求的5個jar包的基礎上新增4個jar包,總共九個jar包 然後是配置檔案的寫法,如下 開始 結束 然後最主要的是前置通知和後置通知的類和方法了 前置通知,如下 開始 package com.dao.impl import org.aspectj.lang.joinpoin...