@Pointcut的切入点表达式

@Pointcut的切入点表达式

@Pointcut 的切入点表达式用于指定哪些方法会被拦截,它是 AOP 中非常重要的一部分。切入点表达式的语法由以下几部分组成:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)

各部分含义如下:

  • modifiers-pattern:指定方法的修饰符,如 publicprivateprotected*(匹配所有修饰符)等。
  • ret-type-pattern:指定方法的返回类型,如 void*(匹配所有返回类型)等。
  • declaring-type-pattern:指定方法所属的类的类型,可以使用包名、类名等信息来匹配。
  • name-pattern:指定方法的名称,可以使用通配符来匹配,如 *Service 匹配所有以 “Service” 结尾的方法名。
  • param-pattern:指定方法的参数列表,可以使用通配符来匹配。
  • throws-pattern:指定方法可能抛出的异常。

以下是一些切入点表达式的示例:

  1. 匹配所有公共方法:

    execution(public * *(..))
    
  2. 匹配指定包下的所有方法:

    execution(* com.example.service.*.*(..))
    
  3. 匹配指定包及其子包下的所有方法:

    execution(* com.example..*.*(..))
    
  4. 匹配指定类中所有方法:

    execution(* com.example.service.UserService.*(..))
    
  5. 匹配指定返回类型的方法:

    execution(* com.example.service.UserService.get*(..))
    
  6. 匹配指定参数类型的方法:

    execution(* com.example.service.UserService.*(Long))
    
  7. 匹配指定异常类型的方法:

    execution(* com.example.service.UserService.*(..) throws java.lang.Exception)
    
  8. 匹配指定方法名的方法:

    execution(* *Service.doSomething(..))
    

这些是一些基本的示例,实际应用中你可以根据需要结合具体情况来编写切入点表达式。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值