gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:28:15 25 4
gpt4 key购买 nike

包装内com.repository 我有:

  1. 扩展 spring data Repository 的独立接口(interface)
  2. 在同一个包中使用我自己的实现扩展 spring data Repository 的接口(interface)
  3. 实现我的存储库接口(interface)的存储库类

我想测量 com.repository 包中所有方法的执行时间(与数据库的通信)。但我想避免重复

现在

@Pointcut("执行(public * com.repository..(..))")

我有一些方法记录了两次 - 来自接口(interface)和实现该接口(interface)的类。我不想记录在同一包中实现类的接口(interface)中的方法,或者不记录在同一包中实现接口(interface)的类中的方法。

如何用切入点和建议来表达它?

我的问题与 AspectJ : Issue when combining multiple pointcuts in @Around advice 有点相关,但这并不能解决我的问题。

最佳答案

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

所以使用

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

而不是

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

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

关于java - 避免 AOP 中重叠的切入点和切面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58180049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com