spring AOP四種實現方式

2021-08-13 05:39:13 字數 1898 閱讀 6685

1. 建立通知:定義乙個介面

public inte***ce sleepable

然後寫乙個human類,他實現了這個介面

public human implements sleepable

}

2.編寫乙個sleephelper類,它裡面包含了睡覺的輔助工作,用aop術語來說它就應該是通知

public class sleephelper implements methodbeforeadvice,afterreturningadvice  

public void afterreturning(object rturnvalue, method method, object arguments,

object target) throws throwable

}

然後在spring配置檔案中進行配置:

//定義切點的常用的兩種方式:1)使用正規表示式 2)使用aspectj表示式,

//這裡用正規表示式

// proxyfactorybean是乙個**,我們可以把它轉換為

//proxyinte***ces中指定的實現該inte***ce的**物件

**類

public class stutest 

}

用@aspect的註解來標識切面

@aspect//該類為切面

public class myaspect

//後置增強

@afterreturning(value="execution(public * *(..))")

public void myafterreturning()

//異常增強

@afterthrowing(value="execution(public * *(..))")

public void myafterthrowing()

//環繞增強

@around(value="execution(public * *(..))")

public void myaround(proceedingjoinpoint jp) catch (throwable e)

system.out.println("環繞後增強");

}//最終增強

@after(value="execution(public * *(..))")

public void myafterlogger()

}

spring配置檔案:

測試類

public class stutest 

}

定義乙個aop通知者

後通知返回後通知

丟擲後通知

周圍通知

定義乙個切面

前通知頂級配置元素,類似於這種東西

定義乙個切點

public class myaspect 

public string myafterreturning(string returning)

}

public class iserviceimpl implements iservice

public string dofirst()

}

spring的配置檔案:

測試類

public class springtest 

}

四種定址方式

直接在指令中給出運算元,不需要儲存單元,執行速度快,但是顯然資料也不能冗長,通用型性差,一般用來指定一些要求不高的整形整數。運算元 於暫存器,結果也寫回暫存器。顯然這個主要用到暫存器,這也是他的名字的由來。指令給出有效位址,這使得位址碼會很長,通用性也差。指令中給出的是運算元位址的位址,顯然就是要根...

四種監控方式

四種方式 logging tracing metrics healthcheck 1 研發成本來說 logging 比較低 metrics 一般 tracing比較高 2 運維成本來說 logging 比較高 3 相應能力來 metrics 比較好 4 解決問題來說 tracing 比較好 logg...

四種方式實現SQLServer 分頁查詢

sqlserver 的資料分頁 假設現在有這樣的一張表 create table test id int primary key not null identity,names varchar 20 然後向裡面插入大約1000條資料,進行分頁測試 假設頁數是10,現在要拿出第5頁的內容,查詢語句如下...