站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        基于schema的風(fēng)格AOP

        基于schema的風(fēng)格
        先看一下配置文件(aop_config_schema.xml):

        <?xml version=”1.0″ encoding=”UTF-8″?> 
        <beans xmlns=”http://www.springframework.org/schema/beans” 
                   xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” 
          xmlns:aop=”http://www.springframework.org/schema/aop”  
                xsi:schemaLocation=” 
        [url]http://www.springframework.org/schema/beans[/url]
        [url]http://www.springframework.org/schema/beans/spring-beans-2.0.xsd[/url] 
        [url]http://www.springframework.org/schema/aop[/url] 
        [url]http://www.springframework.org/schema/aop/spring-aop-2.0.xsd[/url]> 
        <!– 
        有了schema的支持,切面就和常規(guī)的Java對(duì)象一樣被定義成application context中的一個(gè)bean。 
        對(duì)象的字段和方法提供了狀態(tài)和行為信息,XML文件則提供了切入點(diǎn)和通知信息。 
        正如下面這個(gè)bean指向一個(gè)沒有使用 @Aspect 注解的bean類, 
        但是這個(gè)類會(huì)在下面被配置為一個(gè)切面的backing bean(支持bean)。 
        –> 
        <bean id=”aBean” class=”com.xyz.myapp.AspectExample2″> 
          … 
        </bean> 
        <!– 
        配置文件中: 
        所有的AOP配置是在<aop:config>標(biāo)簽中設(shè)置的,所有的切面和通知器都必須定義在 <aop:config> 元素內(nèi)部。 
        一個(gè)application context可以包含多個(gè) <aop:config>。 
        一個(gè) <aop:config> 可以包含pointcutadvisoraspect元素(注意它們必須按照這樣的順序進(jìn)行聲明)。 
        如果想強(qiáng)制使用CGLIB代理,需要將 <aop:config> 的 proxy-target-class 屬性設(shè)為true 
        –> 
        <aop:config> 
          <!–頂級(jí)(<aop:config>)切入點(diǎn): 
          直接在<aop:config>下定義,這樣就可以使多個(gè)切面和通知器共享該切入點(diǎn)。–> 
          <aop:pointcut id=”businessService” 
          expression=”execution(* com.xyz.myapp.service.*.*(..))”/> 
          <!–這里使用命名式切入點(diǎn),只在JDK1.5及以上版本中支持。–> 
          <aop:pointcut id=”businessService” 
          expression=”com.xyz.myapp.SystemArchitecture.businessService()”/> 

          <!–切面使用<aop:aspect>來聲明,backing bean(支持bean)通過 ref 屬性來引用–> 
          <aop:aspect id=”myAspect” ref=”aBean”> 
            <!–在切面里面聲明一個(gè)切入點(diǎn):這種情況下切入點(diǎn)只在切面內(nèi)部可見。–> 
            <aop:pointcut id=”businessService” 
            expression=”execution(* com.xyz.myapp.service.*.*(..))”/> 

            <!–Before通知–> 
            <aop:before 
           pointcut-ref=”dataAccessOperation” 
           method=”doAccessCheck”/> 
            <!–使用內(nèi)置切入點(diǎn):將 pointcut-ref 屬性替換為 pointcut 屬性–> 
            <aop:before 
           pointcut=”execution(* com.xyz.myapp.dao.*.*(..))” 
           method=”doAccessCheck”/> 

            <!–返回后通知–> 
            <aop:after-returning 
           pointcut-ref=”dataAccessOperation” 
           method=”doAccessCheck”/> 
            <!–@AspectJ風(fēng)格一樣,通知主體可以接收返回值。使用returning屬性來指定接收返回值的參數(shù)名–> 
            <aop:after-returning 
           pointcut-ref=”dataAccessOperation” 
           returning=”retVal” 
           method=”doAccessCheck”/> 

            <!–拋出異常后通知–> 
            <aop:after-throwing 
           pointcut-ref=”dataAccessOperation” 
           method=”doRecoveryActions”/> 
            <!–@AspectJ風(fēng)格一樣,可以從通知體中獲取拋出的異常。 
            使用throwing屬性來指定異常的名稱,用這個(gè)名稱來獲取異常–> 
            <aop:after-throwing 
           pointcut-ref=”dataAccessOperation” 
           thowing=”dataAccessEx” 
           method=”doRecoveryActions”/> 

            <!–后通知–> 
            <aop:after 
           pointcut-ref=”dataAccessOperation” 
           method=”doReleaseLock”/> 

            <!–Around通知:通知方法的第一個(gè)參數(shù)的類型必須是 ProceedingJoinPoint 類型–> 
            <aop:around 
           pointcut-ref=”businessService” 
           method=”doBasicProfiling”/> 
          </aop:aspect> 
        </aop:config> 
        </beans>

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 四虎影院国产精品| 中文无码久久精品| 亚洲?V无码成人精品区日韩| 国产精品福利一区二区| 欧美精品亚洲日韩aⅴ| 999精品色在线播放| 国产精品无码专区| 亚洲AV永久无码精品一区二区| 亚洲国产精品不卡在线电影| 国产99视频精品免视看7| 亚洲精品国产精品乱码视色| 精品久久人人妻人人做精品| 亚洲国产精品久久久久久| 国产中老年妇女精品| 亚洲AV成人精品一区二区三区| 无码精品人妻一区二区三区影院 | 亚洲A∨午夜成人片精品网站| 无码精品一区二区三区免费视频 | 精品久久久无码中文字幕 | 9久久9久久精品| 久久国产免费观看精品3| 亚洲七七久久精品中文国产| 蜜臀AV无码国产精品色午夜麻豆| 一区二区三区精品| 香蕉国产精品频视| 欧美日韩精品在线| 久久精品成人国产午夜| 大桥未久在线精品视频在线| 囯产精品一品二区三区| 精品视频无码一区二区三区 | 亚洲?V乱码久久精品蜜桃| 国产乱子伦精品免费视频| 97久视频精品视频在线老司机| 久久精品国内一区二区三区| 国产91精品在线| 91久久精品91久久性色| MM1313亚洲国产精品| 99视频精品全部在线观看 | 自拍偷在线精品自拍偷| 最新国产精品拍自在线观看| 影院无码人妻精品一区二区|