AOP切入点表达式

2 篇文章 0 订阅
2 篇文章 0 订阅

1within表达式

通过类名进行匹配 粗粒度的切入点表达式

within(包名.类名)

则这个类中的所有的连接点都会被表达式识别,成为切入点。
        <aop:pointcut expression="within(cn.tedu.service.UserServiceImpl)"

 

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

        <aop:pointcut expression="within(cn.tedu.service.*)"

 

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

        <aop:pointcut expression="within(cn.tedu.*.*)"

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

        <aop:pointcut expression="within(cn.tedu..*)"

 

2execution()表达式

细粒度的切入点表达式,可以以方法为单位定义切入点规则

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

 

例子1:

<aop:pointcut expression=

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

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

例子2:

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

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

例子3:

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

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

例子4:

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

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

例子5:

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

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

例子6:

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

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

例子7:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值