(殘夢追月原創(chuàng),轉(zhuǎn)載請注明)
本文地址:http://m.tkk7.com/cmzy/archive/2008/08/23/223870.html
下篇地址:Spring中基于aop命名空間的AOP 二(聲明一個切面、切入點和通知)
??? 在某些時候,我們工程中使用的JDK 不一定就是1.5 以上,也就是說可能不支持Annotation 注解,這時自然也就不能使用@AspectJ 注解驅(qū)動的AOP 了,那么如果我們?nèi)匀幌胧褂肁spectJ 靈活的切入點表達式,那么該如何呢?Spring 為我們提供了基于xml schematic 的aop 命名空間,它的使用方式和@AspectJ 注解類似,不同的是配置信息從注解中轉(zhuǎn)移到了Spring 配置文件中。在這里,我們將詳細介紹如何使用Spring 提供的<aop:config/> 標(biāo)簽來配置Spring AOP 。
1 、一點準(zhǔn)備工作和一個例子
??? 使用<aop:config/> 標(biāo)簽,需要給Spring 配置文件中引入基于xml schema 的Spring AOP 命名空間。完成后的Spring 配置文件如下(在該節(jié),所有例程的配置文件中添加了Spring AOP 命名空間,除非特殊情況外,為了節(jié)約空間,這部分將在給出的代碼中省略),粗體內(nèi)容即為我們需要添加的內(nèi)容:
??? 關(guān)于aop命名空間的標(biāo)簽,我們前面使用過的有<aop:aspectj-autoproxy/>,在這一節(jié),我們將以<aop:config/>標(biāo)簽作為重點。事實上,我們在這一節(jié)介紹的所有標(biāo)簽都是該標(biāo)簽的子標(biāo)簽。
?? 下面有一個例程來直觀的展示如何使用<aop:config/>標(biāo)簽來配置Spring AOP(完整代碼見例程4.15)。在例子中,我們使用<aop:config/>配置一個切面并攔截目標(biāo)對象Peoples的SayHello()方法,在它執(zhí)行前輸出提示信息。
首先創(chuàng)建工程AOP_Test4.15,添加Spring IoC和Spring AOP庫后,創(chuàng)建aop.test包,新建目標(biāo)類People,代碼如下:
??? 修改Spring xml配置文件,將該類注冊為一個受管Bean:
??? 創(chuàng)建含有main()方法的測試類TestMain,從Spring IoC容器中獲取Peoples對象,并調(diào)用其SayHello()方法,代碼如下:
?? 創(chuàng)建MyAspect類,添加一個beforeAdvice()方法作為前置通知方法,代碼如下:
??? 修改xml配置文件,為其添加aop命名空間,并把MyAspect注冊為一個受管Bean,作為我們下面定義切面的backing bean。代碼如下:
??? 運行主類,輸出如下:
例程4.15輸出結(jié)果
By:殘夢追月
posted on 2008-08-23 15:56
殘夢追月 閱讀(3388)
評論(1) 編輯 收藏 所屬分類:
Spring