隨筆-42  評(píng)論-349  文章-4  trackbacks-0

          (殘夢(mèng)追月原創(chuàng),轉(zhuǎn)載請(qǐng)注明)

          本文地址:http://www.aygfsteel.com/cmzy/archive/2008/08/23/223870.html
          下篇地址:Spring中基于aop命名空間的AOP 二(聲明一個(gè)切面、切入點(diǎn)和通知)

          ??? 在某些時(shí)候,我們工程中使用的JDK 不一定就是1.5 以上,也就是說(shuō)可能不支持Annotation 注解,這時(shí)自然也就不能使用@AspectJ 注解驅(qū)動(dòng)的AOP 了,那么如果我們?nèi)匀幌胧褂肁spectJ 靈活的切入點(diǎn)表達(dá)式,那么該如何呢?Spring 為我們提供了基于xml schematic 的aop 命名空間,它的使用方式和@AspectJ 注解類(lèi)似,不同的是配置信息從注解中轉(zhuǎn)移到了Spring 配置文件中。在這里,我們將詳細(xì)介紹如何使用Spring 提供的<aop:config/> 標(biāo)簽來(lái)配置Spring AOP 。


          1 、一點(diǎn)準(zhǔn)備工作和一個(gè)例子

          ??? 使用<aop:config/> 標(biāo)簽,需要給Spring 配置文件中引入基于xml schema 的Spring AOP 命名空間。完成后的Spring 配置文件如下(在該節(jié),所有例程的配置文件中添加了Spring AOP 命名空間,除非特殊情況外,為了節(jié)約空間,這部分將在給出的代碼中省略),粗體內(nèi)容即為我們需要添加的內(nèi)容:

          ??? 關(guān)于aop命名空間的標(biāo)簽,我們前面使用過(guò)的有<aop:aspectj-autoproxy/>,在這一節(jié),我們將以<aop:config/>標(biāo)簽作為重點(diǎn)。事實(shí)上,我們?cè)谶@一節(jié)介紹的所有標(biāo)簽都是該標(biāo)簽的子標(biāo)簽。


          ?? 下面有一個(gè)例程來(lái)直觀的展示如何使用<aop:config/>標(biāo)簽來(lái)配置Spring AOP(完整代碼見(jiàn)例程4.15)。在例子中,我們使用<aop:config/>配置一個(gè)切面并攔截目標(biāo)對(duì)象Peoples的SayHello()方法,在它執(zhí)行前輸出提示信息。
          首先創(chuàng)建工程AOP_Test4.15,添加Spring IoC和Spring AOP庫(kù)后,創(chuàng)建aop.test包,新建目標(biāo)類(lèi)People,代碼如下:

          ??? 修改Spring xml配置文件,將該類(lèi)注冊(cè)為一個(gè)受管Bean:

          ??? 創(chuàng)建含有main()方法的測(cè)試類(lèi)TestMain,從Spring IoC容器中獲取Peoples對(duì)象,并調(diào)用其SayHello()方法,代碼如下:

          ?? 創(chuàng)建MyAspect類(lèi),添加一個(gè)beforeAdvice()方法作為前置通知方法,代碼如下:

          ??? 修改xml配置文件,為其添加aop命名空間,并把MyAspect注冊(cè)為一個(gè)受管Bean,作為我們下面定義切面的backing bean。代碼如下:

          ??? 運(yùn)行主類(lèi),輸出如下:

          例程4.15輸出結(jié)果

          例程4.15輸出結(jié)果



          By:殘夢(mèng)追月
          posted on 2008-08-23 15:56 殘夢(mèng)追月 閱讀(3391) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Spring

          評(píng)論:
          # re: Spring中基于aop命名空間的AOP 一(一點(diǎn)準(zhǔn)備工作和一個(gè)例子) 2008-09-02 08:38 | qj
          謝謝~~~  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 门头沟区| 来安县| 阿克陶县| 西畴县| 临朐县| 保康县| 白玉县| 五指山市| 东乡族自治县| 惠安县| 龙泉市| 敦化市| 沽源县| 灵丘县| 岚皋县| 进贤县| 瓦房店市| 绿春县| 玉环县| 区。| 唐山市| 枣庄市| 斗六市| 射阳县| 梓潼县| 攀枝花市| 长治县| 临泉县| 新野县| 亚东县| 台东市| 阳原县| 徐水县| 克东县| 融水| 云阳县| 黄陵县| 清远市| 大田县| 旅游| 定边县|