• aop中execution 表达式


    学习Spring中的aop组装切面时遇到的execution表达式,下面是execution表达式的详解

    切入点表达式:execution(* 包名.*.*(..))

    整个表达式可以分为五个部分:

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

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

    3、包名:表示需要拦截的包名。

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

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

    其中除了返回类型模式、方法名模式和参数模式外,其它项都是可选的。

     举例:

    execution(public * *(..))     匹配所有的public修饰符的方法

    execution(* set*(..))  匹配所有”set”开头的方法:

    execution(* com.xyz.service.AccountService.*(..))  匹配AccountService 接口/类的所有方法:

    execution(* joke(String,int)) 
    匹 配joke(String,int)方法,且joke()方法的第一个入参是String,第二个入参是int。如果方法中的入参类型是Java.lang包下的类,可以直接使用类名,否则必须使用全限定类名,如joke(java.util.List,int);

     

    execution(* joke(String,*))
    匹 配目标类中的joke()方法,该方法第一个入参为String,第二个入参可以是任意类型,如joke(Strings1,String s2)和joke(String s1,double d2)都匹配,但joke(String s1,doubled2,String s3)则不匹配;

     

    execution(* joke(String,..))
    匹配目标类中的joke()方法,该方法第 一个入参为String,后面可以有任意个入参且入参类型不限,如joke(Strings1)、joke(String s1,String s2)和joke(String s1,double d2,Strings3)都匹配。



  • 相关阅读:
    树的计数 + prufer序列与Cayley公式 学习笔记
    链表
    密码学摘要
    查找与排序
    匿名内部类 调用方法内局部变量
    <c:url>标签相关知识点
    Oracle 导入导出数据库
    oracle cursor
    Oracle 删除用户和表空间------创建表空间和用户
    iOS延迟执行方法
  • 原文地址:https://www.cnblogs.com/zouhong/p/13453518.html
Copyright © 2020-2023  润新知