隨筆-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 殘夢追月 閱讀(3392) 評論(1)  編輯  收藏 所屬分類: Spring

          評論:
          # re: Spring中基于aop命名空間的AOP 一(一點準備工作和一個例子) 2008-09-02 08:38 | qj
          謝謝~~~  回復  更多評論
            
          主站蜘蛛池模板: 南江县| 平山县| 镇沅| 三门县| 阿克苏市| 和田县| 和平区| 海门市| 嘉善县| 资源县| 嘉祥县| 宿松县| 磐石市| 探索| 广东省| 神农架林区| 万山特区| 上高县| 靖远县| 嘉鱼县| 佛坪县| 枣强县| 武隆县| 阿克| 正镶白旗| 韶山市| 开阳县| 五峰| 天祝| 吐鲁番市| 乐至县| 新营市| 鹰潭市| 义马市| 黄石市| 沾化县| 深圳市| 根河市| 高青县| 汝南县| 银川市|