Spring中AOP切入点表达式

1.within表达式

通过类名进行匹配 ,粗粒度的切入点表达式,最多控制到类级别

语法:within(包名.类名)

如下配置后类中的所有的连接点都会被表达式识别,成为切入点

在within表达式中可以使用*号匹配符,匹配指定包下所有的类,注意,只匹配当前包,不包括当前包的子孙包。

 

在within表达式中也可以用*号匹配符,匹配包

在within表达式中也可以用..*号匹配符,匹配指定包下及其子孙包下的所有的类

2.execution()表达式

细粒度的切入点表达式,可以以方法为单位定义切入点规则(细粒度表达式 --常用,execution可以实现within的所有功能)

 语法:execution(返回值类型 包名.类名.方法名(参数类型,参数类型…))

2.1该切入点规则表示,切出指定包下指定类下指定名称指定参数指定返回值的方法。

<aop:pointcut expression=

"execution(void cn.wyy.service.UserServiceImpl.addUser(java.lang.String))" id="pc1"/>

2.2该切入点规则表示,切出指定包下所有的类中的query方法,要求无参,但返回值类型不限

<aop:pointcut expression="execution(* cn.wyy.service.*.query())" id="pc1"/>

 2.3该切入点规则表示,切出指定包及其子孙包下所有的类中的query方法,要求无参,但返回值类型不限

<aop:pointcut expression="execution(* cn.wyy.service..*.query())" id="pc1"/>

2.4该切入点规则表示,切出指定包及其子孙包下所有的类中的query方法,要求参数为int java.langString类型,但返回值类型不限

 <aop:pointcut expression="execution(* cn.wyy.service..*.query(int,java.lang.String))" id="pc1"/>

2.5该切入点规则表示,切出指定包及其子孙包下所有的类中的query方法,参数数量及类型不限,返回值类型不限

<aop:pointcut expression="execution(* cn.wyy.service..*.query(..))" id="pc1"/>

2.6该切入点规则表示,切出指定包及其子孙包下所有的类中的任意方法,参数数量及类型不限,返回值类型不限。这种写法等价于within表达式的功

<aop:pointcut expression="execution(* cn.wyy.service..*.*(..))" id="pc1"/>

 2.7该切入点规则表示,切出指定包及其子孙包下所有的类中的任意方法,参数数量及类型不限,返回值类型不限。这种写法等价于within表达式的功能

 <aop:pointcut expression="execution(* cn.wyy.service..*(..))" id="pc1"/>

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值