使用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;
        }

        
    }


}

 

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

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

spring学习笔记(19)——重用切点表达式

重用切点表达式先看看之前的代码@Aspect @Component public class LoggingAscept { @Before("execution(* com.zj.ascep...
  • u010837612
  • u010837612
  • 2015年05月09日 10:25
  • 804

Spring 运用 pointcut 和 advisor 对特定的方法进行切面编程

上一个例子演示了对特定的bean中的所有的方法进行面向切面编程,包括了 before , after , after throwing, around 几种形式: 如果想对一个bean中的特定方法进...
  • topwqp
  • topwqp
  • 2013年03月20日 17:32
  • 10834

spring使用aspectj开发的增强类型注解和aspectj在spring中用到的切点函数

@Before
  • warren_1992
  • warren_1992
  • 2016年04月27日 09:18
  • 701

Spring-AOP:切面优先级和重用切点表达式

切面优先级 在同一个连接点上应用不止一个切面时, 除非明确指定, 否则它们的优先级是不确定的. 切面的优先级可以通过实现 Ordered 接口或利用 @Order 注解指定. 实现 Ordered 接...
  • u013468917
  • u013468917
  • 2016年08月03日 23:28
  • 1257

Spring AOP 之 实现切点、切面

准备jar包定义目标类1. 目标类接口 public interface ITarger { public void HelloWorld(); }2. 目标类的实现 public cla...
  • github_34889651
  • github_34889651
  • 2016年05月05日 21:06
  • 3500

Spring 在静态工具类中使用注解注入bean

问题最近在项目中遇到这样一个情况:有一个发送邮件的工具类。在这个工具类中提供了几种静态方法,静态方法需要另外一个类的实例提供处理。解决在网上查阅了资料后有几种解决方案,具体可以参考http://blo...
  • da_guo_li
  • da_guo_li
  • 2017年06月14日 17:13
  • 1181

spring学习笔记(11)@AspectJ研磨分析[2]切点表达式函数详解

Spring中的AspectJ切点表达式函数切点表达式函数就像我们的GPS导航软件。通过切点表达式函数,再配合通配符和逻辑运算符的灵活运用,我们能很好定位到我们需要织入增强的连接点上。经过上面的铺垫,...
  • qwe6112071
  • qwe6112071
  • 2016年03月22日 01:40
  • 2959

spring常用工具类

spring给我们提供了很多的工具类, 应该在我们的日常工作中很好的利用起来. 它可以大大的减轻我们的平时编写代码的长度. 因我们只想用spring的工具类, 而不想把一个大大的spring工程给...
  • houfeng30920
  • houfeng30920
  • 2016年07月08日 18:53
  • 2496

Spring常用工具类

Spring 的优秀工具类盘点 文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口,Resource 接口是为了统一各种类型不同...
  • ichsonx
  • ichsonx
  • 2016年09月29日 14:24
  • 1334
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Spring的PointCuts类完成一个重用的Pointcut交集并集工具类
举报原因:
原因补充:

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