隨筆-42  評論-349  文章-4  trackbacks-0

          (殘夢追月原創,轉載請注明)

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

          ??? 在某些時候,我們工程中使用的JDK 不一定就是1.5 以上,也就是說可能不支持Annotation 注解,這時自然也就不能使用@AspectJ 注解驅動的AOP 了,那么如果我們仍然想使用AspectJ 靈活的切入點表達式,那么該如何呢?Spring 為我們提供了基于xml schematic 的aop 命名空間,它的使用方式和@AspectJ 注解類似,不同的是配置信息從注解中轉移到了Spring 配置文件中。在這里,我們將詳細介紹如何使用Spring 提供的<aop:config/> 標簽來配置Spring AOP 。


          1 、一點準備工作和一個例子

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

          ??? 關于aop命名空間的標簽,我們前面使用過的有<aop:aspectj-autoproxy/>,在這一節,我們將以<aop:config/>標簽作為重點。事實上,我們在這一節介紹的所有標簽都是該標簽的子標簽。


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

          ??? 修改Spring xml配置文件,將該類注冊為一個受管Bean:

          ??? 創建含有main()方法的測試類TestMain,從Spring IoC容器中獲取Peoples對象,并調用其SayHello()方法,代碼如下:

          ?? 創建MyAspect類,添加一個beforeAdvice()方法作為前置通知方法,代碼如下:

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

          ??? 運行主類,輸出如下:

          例程4.15輸出結果

          例程4.15輸出結果



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

          評論:
          # re: Spring中基于aop命名空間的AOP 一(一點準備工作和一個例子) 2008-09-02 08:38 | qj
          謝謝~~~  回復  更多評論
            
          主站蜘蛛池模板: 邓州市| 静宁县| 诸暨市| 海丰县| 海安县| 长沙市| 汉阴县| 贵德县| 台东县| 镇雄县| 张掖市| 九寨沟县| 白水县| 甘谷县| 德兴市| 永吉县| 玉溪市| 肥西县| 兴海县| 通辽市| 枣阳市| 屏东县| 汾西县| 黄冈市| 浦北县| 陇南市| 南皮县| 崇仁县| 洪江市| 抚顺市| 临清市| 涡阳县| 庆元县| 驻马店市| 长葛市| 石台县| 崇明县| 图们市| 绍兴市| 安阳县| 太湖县|