aop 切面

来源:互联网 发布:手机淘宝主页怎么装修 编辑:程序博客网 时间:2024/04/28 06:53

切入点指示符用来指示切入点表达式目的,


1.1命名及匿名切入点

命名切入点可以被其他切入点引用,而匿名切入点是不可以的。只有@AspectJ支持命名切入点,而Scheme风格不支持命名切入点。如下所示

@AspectJ使用如下方式引用命名切入点。

@Pointcut("(execution(* com.hd123.latin..*(..)) || execution(* com.hd123.hdpos4..*(..))) &&"
      + " (@annotation(com.hd123.latin.dao.LatinTX) ||"
      + " @annotation(com.hd123.latin.dao.LatinNewTX))")
  public void operCtx() {
  }


  @Before("operCtx() && args(..,operCtx)")
  public void before(LOperateContext operCtx) throws Exception {
    saveTempOperCtx(operCtx);
  }

1.2类型匹配语法

*:匹配任何数量字符;..:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包;而在方法参数模式中匹配任何数量参数。

+:匹配指定类型的子类型;仅能作为后缀放在类型模式后边.



匹配表达式类型

匹配类型:可使用如下方式匹配

匹配方法:使用如下方式匹配




1.3 组合切入点表达式

AsPectJ 使用且(&&)、或(||)、非(!)来组合切入点表达式。在Scheme风格下,由于在XML中使用&&需要使用转义符‘’“&&amp”来代替之,因此spring asp

提供了and、or、not来替代他们

(1)execution:使用“”“execution(方法表达式)”匹配方法执行

(2)within:使用“‘within(类型表达式)’”匹配指定类型内的方法执行:

(3)args:使用args(类型参数列表)匹配当前执行的方法传入的方法传入的参数为指定类型的执行方法;注意是匹配传入的参数类型,

不是匹配方法签名参数类型;参数类型列表中的参数必须是类型全线定名,通配符不支持;args输入动态切入点,这种切入点开销非常大,非特殊情况不能用


原创粉丝点击