spring aop expression简单说明

本文详细介绍了AOP(面向切面编程)中的切点表达式语法,包括execution关键字的使用方法及其各种应用场景,如匹配公共方法、特定命名的方法等,并提供了多个实例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

<aop:config>
       <aop:pointcut id="userDAO" expression="execution(public * cn.dao.IUserDAO.*(..))" />
       <aop:advisor advice-ref="tx" pointcut-ref="userDAO"/>
</aop:config>

 

execution                 是方法运行

public                    是指定public的方法,也可以不写直接:execution(* cn.dao.IUserDAO.*(..)

*                         是任意返回值,可以有返回值,也可以是void没有返回值的方法

cn.dao.IUserDAO.*         是指定目录下的指定类任意方法

cn.dao.IUserDAO.insert*   是指定目录下的指定类insert开头的任意方法

cn.dao.IUserDAO.*.*       是指定目录下的任意类下的任意方法

cn.dao..*.*               是指定目录下的任意目录下任意类下的任意方法

(..)                      是任何参数,可以是没有参数

 

下面给出一些常见切入点表达式的例子

1、任意公共方法的执行

execution(public * *(..))

2、任何一个以“set”开始的方法的执行

execution(* set*(..))

3、AccountService 接口的任意方法的执行:

execution(* com.xyz.service.AccountService.*(..))

4、定义在service包里的任意方法的执行

execution(* com.xyz.service.*.*(..))

5、定义在service包或者子包里的任意方法的执行

execution(* com.xyz.service..*.*(..))

 

在execution中是可以有多个的方法,例如:

execution(* com.action.userinfoAction..*(..))&&execution(* com.action.memberAction..*(..))&&!execution(* get*(..))&&!execution(* set*(..))

分隔符:&&、||、and、or

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值