AOP的學習總結《一》

2021-08-15 08:19:30 字數 1793 閱讀 9117

一.aop

*是面向切面程式設計,是作用在oop(物件導向程式設計)本質是乙個優化的動態**,可以對指定物件的指點地點動態引入各種通知;

-->oop:類.物件.方法.屬性

-->aop:切面.通知.切入點.連線點.切入目標物件.**物件.橫切關注點(重點:前.後.返.異.換五種通知)

動態**的優點:1.指定的目標方法. 2.輔助的**直接寫到指定的目標中. 3.實現分層減少耦合,方便維護

*一般的動態**和aop的動態**對比:

一般的動態**

①預設的jdk動態**只能為介面提供動態**

②使用預設的jdk動態**編寫略顯複雜

*使用spring的提供的aop

>1先導入乙個ajr包(一共十個)

>2加入aop命名空間,並配置檔案

>3新增註解;@aspect,會自動識別為乙個切面類

>4編寫通知方法,在方法上加四種註解

-->前置通知:@before後置通知@after返回通知@afterruturning異常通知@afterreturning環繞通知@around

(vlaue="executoin(public 型別 (方法的)全類名)") :固定格式,value的值必須有;

注意:1) 必須通過容器來接收而不是new乙個物件,

2) spring的aop不會對通知的返回值做嚴格的檢查,但是會對方法的引數列表多嚴格的檢查,引數型別對不上則報錯(不能出現aspectj以外的引數)

3) 使用afterthrowing要將異常的引數繫結時,可以通過

throwing屬性繫結:

@afterthrowing(value="mypointcut()",throwing="e"):宣告乙個異常通知;

*優先順序:@order

如果有多個需要aop的類,載入按照首字母a~z順序,可以通過@order進行更改,值越小優先順序越大

joinpoint方法呼叫:

string tostring(); //連線點所在位置的相關資訊

string toshortstring(); //連線點所在位置的簡短相關資訊

string tolongstring(); //連線點所在位置的全部相關資訊

object getthis(); //返回aop**物件

object gettarget(); //返回目標物件

object getargs(); //返回被通知方法引數列表

signature getsignature(); //返回當前連線點簽名

sourcelocation getsourcelocation();//返回連線點方法所在類檔案中的位置

string getkind(); //連線點型別

staticpart getstaticpart(); //返回連線點靜態部分

staticpart方法的呼叫:

signature getsignature(); //返回當前連線點簽名

string getkind(); //連線點型別

int getid(); //唯一標識

string tostring(); //連線點所在位置的相關資訊

string toshortstring(); //連線點所在位置的簡短相關資訊

string tolongstring(); //連線點所在位置的全部相關資訊

Spring學習總結 AOP的實現

一 springaop配置方式 兩種配置方式 1 基於spring配置檔案 1 定義乙個包含切面方法的bean aop bean 包含切面方法loggin public class logger after 通知 public void after around 通知 一定要 return publ...

Spring的AOP(一) 什麼是AOP

一 aop簡介 1.定義 將程式中的交叉業務邏輯 比如安全,日誌,事務等 封裝成乙個切面,然後注入到目標物件 具體業務邏輯 中去。聯想 過濾器 filter 2.aop 的實現方式 1 靜態織入 最複雜,最強大 在編譯階段,通過特殊的編譯器來實現把切面織入到目標物件 2 載入織入 在類的載入階段,通...

Spring中AOP學習 應用(一)

動態 指在程式執行期間動態的將某段 切入到指定方法指定位置進行執行的程式設計方式。1.匯入aop模組 spring aop spring aspects 2.定義乙個業務邏輯類 mathcalculator 在業務執行的時候將日誌執行列印 方法之前 方法執行結束 方法出現異常,3.定義乙個切面類 l...