zoukankan      html  css  js  c++  java
  • pointcut 切面表达式 切入点表达式

    下面给出一些常见切入点表达式的例子。

    • 任意公共方法的执行:

      execution(public * *(..))
    • 任何一个以“set”开始的方法的执行:

      execution(* set*(..))
    • AccountService 接口的任意方法的执行:

      execution(* com.xyz.service.AccountService.*(..))
    • 定义在service包里的任意方法的执行:

      execution(* com.xyz.service.*.*(..))
    • 定义在service包或者子包里的任意方法的执行:

      execution(* com.xyz.service..*.*(..))
    • 在service包里的任意连接点(在Spring AOP中只是方法执行) :

      within(com.xyz.service.*)
    • 在service包或者子包里的任意连接点(在Spring AOP中只是方法执行) :

      within(com.xyz.service..*)
    • 实现了 AccountService 接口的代理对象的任意连接点(在Spring AOP中只是方法执行) :

      this(com.xyz.service.AccountService)
      'this'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得代理对象可以在通知体内访问到的部分。
    • 实现了 AccountService 接口的目标对象的任意连接点(在Spring AOP中只是方法执行) :

      target(com.xyz.service.AccountService)
      'target'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得目标对象可以在通知体内访问到的部分。
    • 任何一个只接受一个参数,且在运行时传入的参数实现了 Serializable 接口的连接点 (在Spring AOP中只是方法执行)

      args(java.io.Serializable)
      'args'在binding form中用的更多:- 请常见以下讨论通知的章节中关于如何使得方法参数可以在通知体内访问到的部分。

      请注意在例子中给出的切入点不同于 execution(* *(java.io.Serializable)): args只有在动态运行时候传入参数是可序列化的(Serializable)才匹配,而execution 在传入参数的签名声明的类型实现了 Serializable 接口时候匹配。

    • 有一个 @Transactional 注解的目标对象中的任意连接点(在Spring AOP中只是方法执行)

      @target(org.springframework.transaction.annotation.Transactional)
      '@target' 也可以在binding form中使用:请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
    • 任何一个目标对象声明的类型有一个 @Transactional 注解的连接点(在Spring AOP中只是方法执行)

      @within(org.springframework.transaction.annotation.Transactional)
      '@within'也可以在binding form中使用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
    • 任何一个执行的方法有一个 @Transactional annotation的连接点(在Spring AOP中只是方法执行)

      @annotation(org.springframework.transaction.annotation.Transactional)
      '@annotation' 也可以在binding form中使用:- 请常见以下讨论通知的章节中关于如何使得annotation对象可以在通知体内访问到的部分。
    • 任何一个接受一个参数,并且传入的参数在运行时的类型实现了 @Classified annotation的连接点(在Spring AOP中只是方法执行)

      @args(com.xyz.security.Classified)
      '@args'




  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/duenboa/p/6665474.html
Copyright © 2011-2022 走看看