zoukankan      html  css  js  c++  java
  • aspectj 表达式 execution切点函数

    execution函数用于匹配方法执行的连接点,语法为:

    execution(方法修饰符(可选) 返回类型 方法名(参数) 异常模式(可选))

    参数部分允许使用通配符:

    *  匹配任意字符,但只能匹配一个元素

    .. 匹配任意字符,可以匹配任意多个元素,表示类时,必须和*联合使用

    +  必须跟在类名后面,如Superman+,表示类本身和继承或扩展指定类的所有类

    示例中的* run(..)解读为:

    方法修饰符  无

    返回类型      *匹配任意数量字符,表示返回类型不限

    方法名          run表示匹配名称为run的方法

    参数               (..)表示匹配任意数量和类型的输入参数

    异常模式       不限

    例如1:

    定义切入点表达式  execution (* com.demo.service.impl..*.*(..))

     1、execution(): 表达式主体。

     2.、方法修饰符  无

     3、第一个*号:表示返回类型,*号表示所有的类型。

     4、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.demo.service.impl包、子孙包下所有类的方法。

     5、第二个*号:表示类名,*号表示所有的类。

     6、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。

     7、异常模式 不限

    例如2:

     execution(* com..*.*Dao.find*(..))

    匹配包名前缀为com的任何包下类名后缀为Dao的方法,方法名必须以find为前缀。如com.baobaotao.UserDao  findByUserId()、com.baobaotao.dao.ForumDao  findById()的方法都匹配切点

    例如3:

     execution(* joke(Object+)))

    匹 配目标类中的joke()方法,方法拥有一个入参,且入参是Object类型或该类的子类。它匹配joke(String s1)。如果我们定义的切点是execution(* joke(Object)),则只匹配joke(Object object)而不匹配joke(String cc)

  • 相关阅读:
    HDUOJ-----Difference Between Primes
    HDUOJ----(4706)Children's Day
    poj-------Common Subsequence(poj 1458)
    poj----Maximum sum(poj 2479)
    scanf/sscanf %[]格式控制串的用法(转)
    HDUOJ--------Text Reverse
    HDUOJ---hello Kiki
    HDUOJ-----X问题
    POJ-----C Looooops
    POJ--Strange Way to Express Integers
  • 原文地址:https://www.cnblogs.com/unknows/p/10307479.html
Copyright © 2011-2022 走看看