zoukankan      html  css  js  c++  java
  • 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)都匹配。



  • 相关阅读:
    C#跨线程调用:不同的窗体之间调用同一个控件
    C#窗体传值的集中方法,亲测可用,随便选
    图像处理中关于Blob的阈值的一些概念
    科幻小说
    汽车制造MES介绍之3 - AVI车辆识别与调度
    汽车制造MES介绍之4
    汽车制造MES介绍之2
    汽车制造MES介绍之1
    推荐几个学习英语的神器
    通过KEPWARE ODBC DRIVER和ADVANCED TAG 实现数据库和PLC的双向通信
  • 原文地址:https://www.cnblogs.com/zouhong/p/13453518.html
Copyright © 2011-2022 走看看