为了账号安全,请及时绑定邮箱和手机立即绑定

避免 AOP 中重叠的切入点和切面

避免 AOP 中重叠的切入点和切面

Qyouu 2023-09-13 15:29:34
在 com.repository 包中我有:扩展 spring data Repository 的独立接口在同一个包中使用我自己的实现扩展 spring data Repository 的接口实现我的存储库接口的存储库类我想测量 com.repository 包中所有方法的执行时间(与数据库的通信)。但我想避免重复现在与@Pointcut("执行(public * com.repository. . (..))")我有一些方法记录了两次 - 来自接口和实现该接口的类。我不想记录在同一包中实现类的接口中的方法,或者不记录在同一包中实现接口的类中的方法。我该如何用切入点和建议来表达它?我的问题与 AspectJ 有点相关:在 @Around 建议中组合多个切入点时出现问题,但它并不能解决我的问题。
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

如果您正在监视的对象位于特定包,为什么您不将切入点仅绑定到该包。

所以使用

@Pointcut("execution(* com.repository.*.*(..))")

代替

@Pointcut("execution(public * com.repository..*.*(..))")

其中包括“com.repository”包及其所有子包。


查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信