spring AOP中切点

spring AOP中,需要使用AspectJ的切点表达式语言来定义切点。
关于Spring AOP的AspectJ切点,最重要的一点是Spring仅支持AspectJ切点指示器(pointcut designator)的一个子集。

AspectJ指示器描述
arg()限制连接点匹配参数为指定类型的执行方法
@arg()限制连接点匹配参数由指定注解标注的执行方法
execution()用于匹配是连接点的执行方法
this()限制连接点匹配AOP代理的Bean引用为指定类型的类
target()限制连接点匹配目标对象为指定类型的类
@target()限制连接点匹配特定的执行对象,这些对象对应的类要具备指定类型的注解
within()限制连接点匹配指定的类型
@within()限制连接点匹配指定注解所标注的类型
@annotation限制匹配带有指定注解连接点

只有execution指示器是唯一的执行匹配,而其他的指示器都是用于限制匹配的。这说明execution指示器是我们在编写切点定义时最主要使用的指示器。在此基础上,我们使用其他指示器来限制所匹配的切点。
1.编写切点
使用AspectJ切点表达式来定位
当Instrument的play()方法执行时会触发通知。
使用within()指示器来限制匹配
配置切点仅匹配com.springinaction.springidol包。
我们使用了&&操作符把execution()和within()指示器连接在一起形成and关系(切点必须匹配所有的指示器)。类似的我们可以使用||操作符来标识or关系,而使用!操作符来标识非操作。
2.使用Spring的bean()指示器
bean()使用Bean ID或Bean名称作为参数来限制切点只匹配特定的Bean。
execution(* com.springinaction.springidol.Instrument.play() and bean(eddie))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值