1. 程式人生 > >spring 註解方式動態代理

spring 註解方式動態代理

一:動態代理和靜態代理的區別?

動態代理是將代理物件下的所有的方法都集中到代理類中集中處理.

靜態代理是將代理物件的某個方法進行轉發處理

二:註解方式的動態代理

第一步:

引入相關的xsd

通過aop名稱空間的<aop:aspectj-autoproxy />宣告自動為spring容器中那些配置@aspect 切面的bean建立代理,織入切面.

意思是在方法執行之前,先執行我的方法.要想把這個邏輯織入到某個方法上面,這個方法必須是spring管理起來的.

第二步:

@aspect

@conmpent

@before(execution(public void add(string id)))

pulic void beforeadd()

{

  syso("我在add之前執行");

}

三:

在Spring AOP中支援4中型別的通知:

1:before advice 在方法執行前執行。

2:after  returning  advice 在方法執行後返回一個結果後執行。

3:after  throwing advice 在方法執行過程中丟擲異常的時候執行。

4:Around  advice 在方法執行前後和丟擲異常時執行,相當於綜合了以上三種通知。

當切入點都一樣時,我們可以定義一個切入點,mymethod()