首页 > 其他分享 >aop切点表达式

aop切点表达式

时间:2023-05-08 23:25:55浏览次数:30  
标签:匹配 String .. pattern 切点 参数 aop java 表达式

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?)

 其中,括号中的每个部分都表示一个限制条件,它们可以组合在一起,用于精确选定匹配的方法。具体参数说明如下:

  1. modifiers-pattern(可选):方法的修饰符,如 public、protected、private、static、final 等等。其中,* 表示任意修饰符,可以省略不写。
  2. ret-type-pattern:返回值类型模式,如 java.lang.String、java.util.* 等等。
  3. declaring-type-pattern(可选):类或接口的全路径名,如 java.lang.String、java.util.AbstractList 等等。其中,* 表示任何类或接口,可以省略不写。
  4. name-pattern:方法名,如 equals、hashCode、* 等等,* 表示匹配所有方法。
  5. param-pattern:方法的参数列表,如 (java.lang.String, int) 表示匹配一个带有一个 String 型和一个 int 型参数的方法。注:"(..)":匹配任意数量任意类型的参数,"()":匹配一个任意类型的参数,"(, String)":匹配两个参数,第一个任意类型,第二个是 String 类型,"(String, ..)":匹配至少一个参数,第一个参数是 String 类型。
  6. throws-pattern(可选):方法声明抛出的异常列表,如 java.lang.NullPointerException、java.lang.Exception 等等。

 例如:

  • execution(public * *(..)) 匹配所有 public 访问权限,任意返回类型,任意类或接口,方法名任意,任意参数的方法。
  • execution(* com.example.demo..(..)) 匹配 com.example.demo 包下的所有方法。
  • execution(* com.example.demo...(..)) 匹配 com.example.demo 包及其子包下的所有方法。
  • execution(String com.example.demo.UserService.getName(String)) 匹配 UserService 类中名为 getName,参数为一个 String 类型的方法,且其返回值必须为 String 类型。
 

标签:匹配,String,..,pattern,切点,参数,aop,java,表达式
From: https://www.cnblogs.com/daxiong182/p/17383480.html

相关文章

  • EL表达式
          ......
  • 正则表达式
    用正则表达式查找文本模式importrephoneNumRegex=re.compile(r'\d\d\d-\d\d\d\-\d\d\d\d')mo=phoneNumRegex.search('Mynumberis415-555-4242.')print(mo.group())用importre导入正则表达式模块;用re.compile()函数创建一个Regex对象;向Regex对象的search()方......
  • lambda表达式
    [capturelist](parameterlist)->returntype{functionbody;};capturelist捕获列表[]//没有定义任何变量。使用未定义变量会引发错误。[x,&y]//x以传值方式传入(默认),y以引用方式传入。[&]//任何被使用到的外部变量都隐式地以引用方式加以引用。[=]//......
  • 基于aspectjwear方式开启aop
    今天刷到b站视频,看到aop织入,发现有点忘了。pom导入aspectjwear依赖,配置spring-aop.xml后引入contextaop context扫描包aspect开启aop自动识别。在切面类方法中配置切入点,测试发生以下错误。Causedby:org.springframework.beans.factory.BeanNotOfRequiredTypeException:Be......
  • 正则表达式?表示匹配前一个字符0次或者1次
     001、[root@PC1test]#lsa.txt[root@PC1test]#cata.txt33ackkddadebckkadabcuyddgg88[root@PC1test]#grep-E"ab?c"a.txt##"ab?c"等价与ac+abc33ackkadabcuy[root@PC1test]#grep"ab?c"a.txt##在g......
  • 神奇的 SQL 之 CASE表达式,妙用多多 !
    CASE表达式之概念相信大家都用过CASE表达式,尤其是做一些统计功能的时候,用的特别多,可真要说什么是CASE表达式,我估计还真没几个人能清楚的表述出来。CASE表达式和“2+1”或者“120/3”这样的表达式一样,是一种进行运算的功能,正如CASE(情况)这个词的含义一样,用于区分情况,在有......
  • 【SSH】SSH框架(三)——Spring IOC和AOP的容器框架
    一、前言      在上一篇博客《【SSH】SSH框架(二)——Struts2框架的简单认识》中小编向大家简单的介绍了SSH框架中的第一个S,也就是Struct2。接下来小编将会向大家分享第二个S——Spring。二、Spring是干什么用的?      其实在小编以前做过的项目中也使用过Spring,那个时候......
  • 日志AOP
    @Target(ElementType.METHOD)//注解放置的目标位置,METHOD是可注解在方法级别上@Retention(RetentionPolicy.RUNTIME)//注解在哪个阶段执行@Documentedpublic@interfaceOperLog{StringoperModul()default"";//操作模块OperLogTypeEnumoperType();//操作类......
  • C# Lambda表达式select()和where()的区别
    1、where()用法:必须加条件,且返回对象结果。string[]arrays={"asd","abc","bbb","ccc"};varresults=arrays.Where(a=>a.Contains("b"));//必须加条件,返回对象2、select()用法:(1)(a=>a.Value=="22")加条件查询时,返回bool型结果;(2)(a=......
  • Spring17_基于XML的AOP开发10
    一、快速入门1. 导入AOP相关坐标2. 创建目标接口和目标类(内部有切点)3. 创建切面类(内部有增强方法)4. 将目标类和切面类的对象创建权交给spring5. 在applicationContext.xml中配置织入关系6. 测试代码代码实现:新建一个module:itheima_spring_aop1.......