博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring aop execution() 是最常见的切点函数
阅读量:5350 次
发布时间:2019-06-15

本文共 2307 字,大约阅读时间需要 7 分钟。

execution() 是最常见的切点函数,语法形式为
excution(
<修饰符模式>
?
<返回类型模式>
<方法名模式>
(
<参数模式>
)
<异常模式>
?)
实例代码
1 package com.aop.learn.aspectj; 2  3 import org.aspectj.lang.annotation.Aspect; 4 import org.aspectj.lang.annotation.Before; 5 import org.springframework.stereotype.Component; 6  7 /** 8  * @author songshuiyang 9  * @title: execution() 实例10  * @description:11  * @date 2017/11/1812  */13 @Aspect14 @Component15 public class ExecutionAspect {16 17     /**18      * 匹配所有目标类的public方法19      */20     @Before("execution(public * *(..))")21     public void beforeAspect(){22 23     }24     /**25      * 匹配所有以To为后缀的方法26      */27     @Before("execution(* *To(..))")28     public void beforeAspect1(){29 30     }31     /**32      * 匹配Waiter接口中的所有方法33      */34     @Before("execution(* com.aop.learn.service.Writer.*(..))")35     public void beforeAspect2(){36 37     }38     /**39      * 匹配Waiter接口中及其实现类的方法40      */41     @Before("execution(* com.aop.learn.service.Writer+.*(..))")42     public void beforeAspect3(){43 44     }45     /**46      * 匹配 com.aop.learn.service 包下所有类的所有方法47      */48     @Before("execution(* com.aop.learn.service.*(..))")49     public void beforeAspect4(){50 51     }52     /**53      * 匹配 com.aop.learn.service 包,子孙包下所有类的所有方法54      */55     @Before("execution(* com.aop.learn.service..*(..))")56     public void beforeAspect5(){57 58     }59     /**60      * 匹配 包名前缀为com的任何包下类名后缀为ive的方法,方法必须以Smart为前缀61      */62     @Before("execution(* com..*.*ive.Smart*(..))")63     public void beforeAspect6(){64 65     }66     /**67      * 匹配 save(String name,int age) 函数68      */69     @Before("execution(* save(String,int))")70     public void beforeAspect7(){71 72     }73     /**74      * 匹配 save(String name,*) 函数 第二个参数为任意类型75      */76     @Before("execution(* save(String,*))")77     public void beforeAspect8(){78 79     }80     /**81      * 匹配 save(String name,..) 函数 除第一个参数固定外,接受后面有任意个入参且入参类型不限82      */83     @Before("execution(* save(String,..))")84     public void beforeAspect9(){85 86     }87     /**88      * 匹配 save(String+) 函数  String+ 表示入参类型是String的子类89      */90     @Before("execution(* save(String+))")91     public void beforeAspect10(){92 93     }94 }

 

转载于:https://www.cnblogs.com/songshuiyang/p/7857515.html

你可能感兴趣的文章
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>
关于标签之间因为换行等问题造成的空白间距问题处理
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
降序排列
查看>>
十一、类型转换
查看>>
面试内容,值得一看
查看>>
UILabel
查看>>