AspectJ切点函数

1. 方法切点函数
execution():根据匹配规则匹配
eg:前置增强@Before(execution(public * *Service(..)))
匹配所有以Service结尾的方法

@annotation():根据相应的的注解匹配
eg:后置增强@AfterReturning(“@annotation(com.sxd.annotation.Tag)”)
只有方法注解了@Tag才能匹配

2. 方法入参切点函数
args:根据输入参数类型参数匹配
eg:环绕增强@Around(com.sxd.domain.Student)
输入参数为Student才能匹配(包含子类)

@args:根据输入参数类型是否注解指定注解匹配
eg:抛出增强@AfterThrowing(com.sxd.annotation.Respository)
比如输入参数StudentDao类上注解了@Repository才能匹配(包含子类)

3. 目标类切点函数
within(): 根据匹配条件匹配
eg:Fianl增强@After(within(com.sxd.service.*Service))
service包下的以Service结尾类所有的方法才能匹配,与execution类似,但只精确到类级别

@within():根据输入参数注解类型匹配
eg:引介增强@DeclareParents(@within(com.sxd.annotation.Tag))
匹配标注了@Tag的类的子类和子孙类

target():根据类型匹配指定类来决定连接点是否匹配
eg:@Before(target(com.sxd.service.BaseService))
匹配BaseService的实现类StudentService的所有方法(接口方法以及没有在接口定义的方法)

@target():根据输入参数注解类型匹配
eg:@Before(@Target(com.sxd.annotation.Tag))
匹配只有标注了@Tag的类(不包含其子类)

4. 代理类切点函数
this()
判断代理对象的类是否按类型匹配于指定类,如果匹配,则代理对象的所有连接点匹配切点

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值