spring aop筆記(使用demo)

2021-05-27 04:33:11 字數 1280 閱讀 2499

定義

連線點(joinpoint) :程式執行過程中的某一行為,例如,aserviceimpl.bara()的呼叫或者bserviceimpl.barb(string _msg, int _type)丟擲異常等行為。

通知(advice) :「切面」對於某個「連線點」所產生的動作,例如,testaspect中對com.spring.service包下所有類的方法進行日誌記錄的動作就是乙個advice。其中,乙個「切面」可以包含多個「advice」,例如testaspect

切入點(pointcut) :匹配連線點的斷言,在aop中通知和乙個切入點表示式關聯。例如,testaspect中的所有通知所關注的連線點,都由切入點表示式execution(* com.spring.service.*.*(..))來決定

目標物件(target object) :被乙個或者多個切面所通知的物件。例如,aservcieimpl和bserviceimpl,當然在實際執行時,spring aop採用**實現,實際aop操作的是targetobject的**物件。

aop**(aop proxy) 在spring aop中有兩種**方式,jdk動態**和cglib**。預設情況下,targetobject實現了介面時,則採用jdk動態**,例如,aserviceimpl;反之,採用cglib**,例如,bserviceimpl。強制使用cglib**需要將 的 proxy-target-class 屬性設為true

通知(advice)型別

<?xml version="1.0"?>

public class aophandler1  

}public object around(proceedingjoinpoint p) throws throwable

public void after(joinpoint joinpoint)

public void dothrowing(joinpoint jp)

public void doreturning(joinpoint jp)

}

當有異常丟擲時,執行順序為:

before—around—after—exception

無異常的執行順序:

before—around—after—around---return

ps:當切面中的方法定義錯誤時,尤其around方法,就會產生一些其他方法呼叫不生效的莫名其妙錯誤

springAOP學習筆記

今天看spring的aop,頭都看暈了 切面aspect,連線點joinpoint 切入點pointcut,proxy,通知advice,前置通知before advice 後置通知after advice,異常通知after throwing advice 最終通知 after finally a...

Spring Aop學習筆記

spring aop 1.選擇連線點 比如 1.jdk 連線點某個介面的imp方法 乙個介面roleservice有個方法printrole 有個該介面的實現類roleserviceimp呼叫方法printrole 設定該方法為連線點,在建立切面時定義 系統會為該imp類生成 物件,然後攔截prin...

springAOP學習筆記

springaop是面向切面程式設計,它一共有6個概念 joinpoint 連線點 所謂連線點是指那些被攔截到的點,在spring中這些點指的是方法,因為spring只支援方法型別的連線點 pointout 切入點 所謂切入點是指我們要對哪些joinpoint進行攔截的定義 advice通知 增強,...