SpringFramework中的AOP簡單使用

2021-09-30 02:36:17 字數 1170 閱讀 2517

aop作為spring這個輕量級的容器中很重要的一部分,得到越來越多的關注,spring的transaction就是用aop來管理的,今天就通過簡單的例子來看看spring中的aop的基本使用方法。

首先確定將要proxy的目標,在spring中預設採用jdk中的dynamic proxy,它只能夠實現介面的**,如果想對類進行**的話,需要採用cglib的proxy。顯然,選擇「程式設計到介面」是更明智的做法,下面是將要**的介面:

public inte***ce foointe***ce

以及其乙個簡單的實現:

public class fooimpl implements foointe***ce

public void dummyfoo()

}接下來建立乙個advice,在spring中支援around,before,after returning和throws四種advice,這裡就以簡單的before advice舉例:

public class printbeforeadvice implements methodbeforeadvice

}有了自己的business inte***ce和advice,剩下的就是如何去裝配它們了,首先利用proxyfactory以程式設計方式實現,如下:

public class aoptestmain

}現在執行程式,神奇的結果就出現了:

in printbeforeadvice

in fooimpl.printfoo

in printbeforeadvice

in fooimpl.dummyfoo

">

foointe***ce

myadvice

">

.*print.*

foointe***ce

myadvisor

主程式不需進行任何修改,執行結果已經變樣了:

in printbeforeadvice

in fooimpl.printfoo

in fooimpl.dummyfoo

/web-inf/jdbc.properties$$

$$$propagation_required,readonly

propagation_required,readonly

嗯,要想徹底理解spring的aop,最好還是多看看原始碼,開源就是好啊!

Spring FrameWork 學習總結

spring framework主要包含以下內容 1.ioc 和 di ioc容器功能 例項化 初始化元件 裝配元件依賴關係 負責元件生命周管理 ioc inversion of control 是乙個重要的物件導向程式設計的法則來削減電腦程式的耦合問題,也是輕量級spring框架核心。di dep...

Spring FrameWork 總結 依賴

package x.y public class foo beanfactory對於它所管理的bean提供兩種注入依賴方式 實際上它也支援同時使用構造器注入和setter方式注入依賴 需要注入的依賴將儲存在beandefinition中,它能根據指定的propertyeditor實現將屬性從一種格式...

用Spring framework實現定時器功能

採用web自動載入timermanager來治理timer鏈,在class更新伺服器熱載入後會發生異常。這要求對timermanager進行一些非凡的處理才能保證timer鏈的正確性。使用spring framework中提供的timertask自動載入功能可以非常輕易的實現定時器鏈的治理。同時,採...