使用Spring的PointCuts类完成一个重用的Pointcut交集并集工具类

原创 2007年10月10日 15:38:00
package PointCuts;

import java.util.Iterator;
import java.util.Map;

import org.springframework.aop.ClassFilter;
import org.springframework.aop.MethodMatcher;
import org.springframework.aop.Pointcut;
import org.springframework.aop.framework.AopConfigException;
import org.springframework.aop.support.ControlFlowPointcut;
import org.springframework.aop.support.Pointcuts;

public class PointCutUtils implements Pointcut ...{
    
private Pointcut pointcut;
    
private Map pointcuts;
    
public ClassFilter getClassFilter() ...{
        
        
return getPointCut().getClassFilter();
    }


    
public MethodMatcher getMethodMatcher() ...{
        
return getPointCut().getMethodMatcher();
    }

    
    
public void setPointCuts(Map pointcuts)...{
        
        
if(pointcuts==null||pointcuts.size()==0)...{
            
throw new AopConfigException("至少要设置一个PointCut");
        }

        pointcut
=(Pointcut)pointcuts.get(0);
        Iterator  it
=pointcuts.entrySet().iterator();   
        
while(it.hasNext())   
        
...{   
          Map.Entry  entry
=(Map.Entry)it.next();   
          String   key
=(String)entry.getKey();   
          Pointcut pc
=(Pointcut)entry.getValue();
          
if(key.equals("union"))...{
              union(pc);
          }

          
else if(key.equals("intercept"))...{
              intercept(pc);
          }

         }

    }

    
    
    
private  void union(Pointcut pc)...{
        pointcut
=Pointcuts.union(pointcut, pc);
    }

    
    
private  void intercept(Pointcut pc)...{
        pointcut
=Pointcuts.intersection(pointcut, pc);
    }

    
    
private Pointcut getPointCut()...{
        
if(pointcut==null)...{
            
throw new AopConfigException("没有设置pointcut");
        }

        
else...{
            
return pointcut;
        }

        
    }


}

 

Spring @Pointcut的用法

在Spring 2.0中,Pointcut的定义包括两个部分:Pointcut表示式(expression)和Pointcut签名(signature)。让我们先看看execution表示式的格式: ...
  • pange1991
  • pange1991
  • 2015-09-28 19:36:05
  • 704

《Pro Spring》学习笔记之ControlFlowPointCut流程切入点实例

如果有这样的需求:我们对一个方法进行切入通知,但只有这个方法在一个特定方法中被调用的时候执行通知,我们可以使用ControlFlowPointCut流程切入点 BeanOne.java package...
  • daryl715
  • daryl715
  • 2007-08-14 22:24:00
  • 1874

集合类(并集、交集、差集操作)

昨日,朋友拿来一份有些问题的源代码,是一个集合类和几个集合操作函数(并集、交集、差集),帮忙改了一下,刚转C++不到半个月,因为只是为了算法竞赛而学C++,所以只好好学了C++偏向算法层的知识,类只是...
  • f_zyj
  • f_zyj
  • 2016-06-26 04:24:18
  • 1378

重载运算符“+”、“*”、“-”实现集合的并集、交集、差集运算

#include #include using namespace std; class A { public: void getdata()//输入数组元素 ...
  • zutuan5
  • zutuan5
  • 2010-11-15 22:52:00
  • 2112

C 顺序表求交集和并集

c语言,交集,并集,顺序表,线性表
  • u012704911
  • u012704911
  • 2016-12-22 01:36:05
  • 377

交集选择器与并集选择器

交集选择器: 数学中:     区域一和区域二共同拥有的部分为区域三,则区域三就为区域一和区域二的交集。 css中: 标签一和标签二相同的部分就为交集选择器。系统所找到的标签必须满足:既有标签一...
  • Ameir_yang
  • Ameir_yang
  • 2017-03-31 16:47:20
  • 2204

Java List的并集 交集 差集 去重复并集

并集、交集、差集的概念可以自行百度。下面是我画的一张图,能让你更加生动形象理解概念。 代码如下:public static void main(String[] args) { List l...
  • u011595939
  • u011595939
  • 2017-07-04 18:04:04
  • 3422

一个日期时间段有交集求并集的问题

同学工作中遇到的,问题大概是:输入一系列时间段(开始日期start,结束日期end)返回结果为:时间段若有交集则取其并集,无交集则返回原时间段,如输入:20160101,20160103;201601...
  • linfujian1999
  • linfujian1999
  • 2017-01-08 16:20:41
  • 1440

算法5:求两个已排序数组的交集和并集

问题描述求两个已排序数据的交集和并集,要求时间复杂度为O(m+n).解题思路A数组和B数组,A数组大小为m,B数组大小为n。 1、查找B数组的每个成员是否在A数组中,时间复杂度为O(mn) 2、由...
  • pplin
  • pplin
  • 2017-03-06 14:47:41
  • 703
收藏助手
不良信息举报
您举报文章:使用Spring的PointCuts类完成一个重用的Pointcut交集并集工具类
举报原因:
原因补充:

(最多只允许输入30个字)