四個bean定義的次序並不重要。我們現在有了乙個advice,乙個包含了正規表示式pointcut的advisor,乙個主程式類和乙個配置好的介面,通過工廠ctx,這個介面返回自己本身實現的乙個引用。
beanimpl和testbeforeadvice都是直接配置。我們用乙個唯一的id建立乙個bean元素,並指定了乙個實現類。這就是全部的工作。
advisor通過spring framework提供的乙個regexmethodpointcutadvisor類來實現。我們用advisor的乙個屬性來指定它所需的advice-bean。第二個屬性則用正規表示式定義了pointcut,確保良好的效能和易讀性。
最後配置的是bean,它可以通過乙個工廠來建立。bean的定義看起來比實際上要複雜。bean是proxyfactorybean的乙個實現,它是spring framework的一部分。這個bean的行為通過一下的三個屬性來定義:
• 屬性proxyinte***ce定義了介面類。
• 屬性target指向本地配置的乙個bean,這個bean返回乙個介面的實現。
• 屬性interceptornames是唯一允許定義乙個值列表的屬性。這個列表包含所有需要在beantarget上執行的advisor。注意,advisor列表的次序是非常重要的。
spring工具
雖然你可以手工修改ant構建指令碼,但使用springui(譯註:springui現在是spring framework的一部分,並改名為spring-ide),使用spring aop變得很簡單,只要點點滑鼠即可。你可以把springui安裝成eclipse的乙個plug-in。然後,你只需在你的project上右擊滑鼠,並選擇「add spring project nature」。在project屬性中,你可以在「spring project」下新增spring配置檔案。在編譯前把下面的類庫加入project:aopalliance.jar,commons-logging.jar,jakarta-oro-2.0.7.jar和spring.jar。執行程式時你會看到下面的資訊:
... (logging information)
hello world! (by com.company.springaop.test.testbeforeadvice)
com.company.springaop.test.beanimpl.themethod() says hello!
優點和缺點
spring比起其他的framework更有優勢,因為除了aop以外,它提供了更多別的功能。作為乙個輕型framework,它在j2ee不同的部分都可以發揮作用。因此,即使不想使用spring aop,你可能還是想使用spring。另乙個優點是,spring並不要求開發團隊所有的人員都會用它。學習spring應該從spring reference的第一頁開始。讀了本文後,你應該可以更好地理解spring reference了。spring唯一的缺點是缺乏更多的文件,但它的mailing list是個很好的補充,而且會不斷地出現更多的文件。
Spring之AOP方式三
本篇學習aop實現方式三 註解 1 配置檔案 注意 使aop註解生效 2 建立aop註解類 aspect 切面類 public class annotationaop 後置方法 切入點 after execution com.lizheng.service.userserviceimpl.publi...
Spring學習筆記三 註解AOP
1.匯入jar包 service public class studentservice component aspect public class studentadvice afterreturning value execution cn.wang.service.如果目標方法有返回值,後置增...
Spring學習筆記 AOP
1 匯入aop模組 spring aop spring aspects 2 定義乙個業務邏輯 3 定義乙個日誌切面類 通知方法 前置通知 before 在目標方法執行之前執行 後置通知 after 在目標方法執行結束後執行 返回通知 afterrerurning 在目標方法正常返回之後執行 異常通知...