A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© longxf_sjz 中级黑马   /  2019-7-28 19:15  /  785 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


一  切入点表达式
    在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut切入点,切入点表达式被用来指定那些方法需要被增强。
    execution()是最常用的切点函数,其语法如下所示:
    execution([修饰符] 返回值类型 包名.类名.方法名(参数列表))

二 详细用法
    1 全匹配写法
   
[XML] 纯文本查看 复制代码
execution( public void com.itheima.service.impl.UserServiceImpl.saveCustomer(..) )

    2 默认 public 可以省略
   
[XML] 纯文本查看 复制代码
execution( void com.itheima.service.impl.UserServiceImpl.saveCustomer(..) )

    3 匹配任何返回值
   
[XML] 纯文本查看 复制代码
execution( * com.itheima.service.impl.UserServiceImpl.saveCustomer(..) )

   4 参数列表可以使用 * , 表示可以是任何的数据类型,但必须有参数
   
[XML] 纯文本查看 复制代码
execution( * com.itheima.service.impl.UserServiceImpl.saveCustomer( * ) )

   5 参数列表可以使用 .. 表示有无参数均可,有参数可以是任意类型
   
[XML] 纯文本查看 复制代码
execution( * com.itheima.service.impl.UserServiceImpl.saveCustomer( .. ) )

   6 包名可以使用*,表示任意包,但是有几级包,需要写几个
   
[XML] 纯文本查看 复制代码
execution( * *.*.*.*.UserServiceImpl.saveCustomer( .. ) )

   7 使用..来表示当前包,及其子包
   
[XML] 纯文本查看 复制代码
execution( * com..UserServiceImpl.saveCustomer( .. ) )

   8 类名可以使用*号,表示任意类
   
[XML] 纯文本查看 复制代码
execution( * com..*.saveCustomer( .. ) )

   9 类名也可以使用 * 加后缀,表示这个后缀的所有类
   
[XML] 纯文本查看 复制代码
execution( * com..*ServiceImpl.saveCustomer( .. ) )

   10 方法名可以使用*号,表示任意方法
   
[XML] 纯文本查看 复制代码
execution( * com..*.* ( .. ) )

   11 全通配方式
   
[XML] 纯文本查看 复制代码
execution( * *..*.* ( .. ) )

   12 实际开发中常用写法
   
[XML] 纯文本查看 复制代码
* com.itheima.service.impl.*.*(..)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马