Spring的切入点表达式的语法(进行匹配目标bean)(bean/execution/within/this)

bean(bean Id/bean name)

Bean(*Service)增强以service结尾的所有bean
例如 bean(customerService) 增强customerService的bean中所有方法 

execution(<访问修饰符>?<返回类型>空格<方法名>(<参数>)<异常>?)

例如: 
execution(* cn.yanqi.spring.a_jdkproxy.CustomerServiceImpl.*(..)) 增强bean对象所有方法
execution(* cn.yanqi.spring..*.*(..)) 增强spring包和子包所有bean所有方法
提示:最灵活的 

within(包.类)

例如: within(cn.yanqi.spring..*) 增强spring包和子包所有bean“所有方法 ”

this(完整类型)/target(完整类型)

This 可以对普通类和接口类进行增强,target 可以对普通类和接口类及实现类进行增强
例如: this(cn.yanqi.spring.a_jdkproxy.CustomerService) 增强类型所有方法

【AspectJ类型匹配的通配符】

*:匹配任何的字符
…:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包;而在方法参数模式中匹配任何数量参数。
+:匹配指定类型的子类型;仅能作为后缀放在类型模式后边。

例如经常使用到的匹配:(注意这里使用到了注解进行匹配的,可以只看匹配规则)
示例:

@Before("bean(*Service)")
@AfterReturning(value = "target(com.hisoft.service.impl.StudentServiceImpl))",returning = "rv")
@Around("execution(* com.hisoft.service.impl.StudentServiceImpl.*(..))")
@AfterThrowing(value="within(com.hisoft.service.impl.*)",throwing = "ex")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值