<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 66,  comments - 11,  trackbacks - 0
    現在你可以為你的應用系統(tǒng)創(chuàng)建可重復使用的切入點了。Spring支持在這些切入點上進行操作-合并與交叉-來創(chuàng)建新的切入點
    。只有當所有切入點都匹配時交叉集合才匹配,任何一個切入點匹配都會使合并集合匹配。為了對2個Pointcut對象進行合并,必須使用Pointcuts類。例如:
    Pointcut union = Pointcuts.union(pointcut1,pointcut2);
    這種方式的一個缺點是它需要通過編碼來實現。
    package com.wyq.spring.base.aopinstance;

    import java.util.List;

    import org.springframework.aop.ClassFilter;
    import org.springframework.aop.MethodMatcher;
    import org.springframework.aop.Pointcut;
    import org.springframework.aop.support.Pointcuts;

    /** 
     * 
    @author 作者 
     * 
    @version 創(chuàng)建時間:2009-11-6 下午02:18:03 
     * 類說明 
     
    */
    public class UnionPointcut implements Pointcut {
        
    //聲明合并的Pointcut實例
        private Pointcut delegate;
        
        
    public Pointcut getDelegate() {
            
    return delegate;
        }

        
    public void setDelegate(Pointcut delegate) {
            
    this.delegate = delegate;
        }
        
    //委托給Pointcut的方法
        public ClassFilter getClassFilter() {
            
    return getDelegate().getClassFilter();
        }

        
    public MethodMatcher getMethodMatcher() {
            
    return getDelegate().getMethodMatcher();
        }
        
    //創(chuàng)建組合切入點
        public void setPointcuts(List pointcuts){
            
    if(pointcuts == null || pointcuts.size()==0){
                System.out.println(
    "沒有要組合的切入點");
            }
            delegate 
    = (Pointcut)pointcuts.get(0);
            
    for(int i=1;i<pointcuts.size();i++){
                Pointcut pointcut 
    = (Pointcut)pointcuts.get(i);
                delegate 
    = Pointcuts.union(delegate,pointcut);
            }
        }

    }
    映射文件如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        
    xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
        
    <bean id="frequentCustomerAdvice" class="com.wyq.spring.common.aopinstance.namemachmethodpointcut.PrequentCustomerAdvice"></bean>
        
        
    <bean id="queryInterceptor" class="com.wyq.spring.common.aopinstance.namemachmethodpointcut.QueryInterceptor"></bean>
        
        
    <bean id="unionpointcut" class="com.wyq.spring.common.aopinstance.composablepointcut.UnionPointcut">
            
    <property name="delegate">
                
    <ref bean="frequentCustomerPointcutAdvisor"/>
            
    </property>
            
    <property name="pointcuts">
                
    <list>
                    
    <ref bean="queryPointCutAdvisor"/>
                
    </list>
            
    </property>
        
    </bean>
        
    <bean id="frequentCustomerPointcutAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
            
    <property name="mappedName">
                
    <value>order*</value>
            
    </property>
            
    <property name="advice">
                
    <ref bean="frequentCustomerAdvice"/>
            
    </property>
        
    </bean>
        
        
    <bean id="queryPointCutAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
            
    <property name="pattern">
                
    <value>.*get.+By.+</value>
            
    </property>
            
    <property name="advice">
                
    <ref bean="queryInterceptor"/>
            
    </property>
        
    </bean>
    </beans>

    posted on 2009-11-06 14:48 王永慶 閱讀(163) 評論(0)  編輯  收藏 所屬分類: SPRING
    <2009年11月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 性盈盈影院免费视频观看在线一区| 一级毛片试看60分钟免费播放| 日本久久久久亚洲中字幕| 亚洲精品无码久久千人斩| 国产精品亚洲а∨无码播放| 精品97国产免费人成视频| 日韩中文字幕免费视频| 好男人视频在线观看免费看片| 亚洲制服丝袜一区二区三区| 国产成人 亚洲欧洲| 成人久久免费网站| 成人免费激情视频| 亚洲国产精品专区在线观看 | 永久免费视频网站在线观看| 免费爱爱的视频太爽了| 亚洲熟妇无码AV在线播放| 亚洲一本一道一区二区三区| 手机看片国产免费永久| 又爽又高潮的BB视频免费看| 亚洲美女视频网址| 美女被艹免费视频| 免费观看激色视频网站(性色)| 亚洲人成网站观看在线播放| 亚洲欧洲日产国码无码久久99| 毛片免费在线观看| 亚洲精品tv久久久久| 国产午夜成人免费看片无遮挡| 久久久久亚洲精品日久生情| 最近免费中文字幕视频高清在线看| 亚洲激情在线观看| a级黄色毛片免费播放视频| 久久亚洲中文字幕精品有坂深雪 | 亚洲色无码一区二区三区| 99蜜桃在线观看免费视频网站| 国产99在线|亚洲| 777成影片免费观看| 亚洲精品美女久久久久99| 曰批全过程免费视频播放网站| 亚洲日本在线电影| 久草在视频免费福利| 亚洲国产成人久久精品动漫|