当前位置: 首页 > 知识库问答 >
问题:

基于使用aspectj的注释值的匹配

韦衡
2023-03-14

我有一个类和一个注释

@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotateMethod
{
  public abstract boolean value();
}

class AAA{
@AnnotateMethod(value=true)
void method()
{


}

@AnnotateMethod(value=false)
    void method1()
    {


    }

    void method2()
    {


    }
    }

我想写一个 aspectj 切入点,它将捕获所有具有 value=true 的注释方法注释的方法。我该怎么做?

共有1个答案

芮意
2023-03-14

这应该是您正在寻找的:

@Pointcut("execution(* *(..)) && @annotation(anMethod) && if()")
public static boolean annotatedMethod(final AnnotateMethod anMethod) {
    return anMethod.value();
}

定义具有注释的所有方法执行的切入点,并在执行建议之前检查所述注释是否具有值 ==true。

无法保证立即可运行,因为我在这里使用内存,但它应该很好

 类似资料:
  • 我们试图将AspectJ实现到现有软件中,以便在进行服务调用后执行一些代码。 注: null 删除了批注,该批注可以正确地自动连接所有内容,但我们的@Aspect从未被调用。 通过声明在批注中添加了CGLIB支持,但无效。 我们尝试直接从Spring中遵循以下文档:@EnableAspectJAutoproxy Javadoc 这似乎是AspectJ处理自动连线依赖关系的代理机制的一个问题。 为什

  • 如何使一个方面以属于用特定注释标记的类的所有公共方法为目标?在下面的method1()和method2()应该由方面处理,method3()不应该由方面处理。 如果我将注释放在方法级别,这方面将工作并匹配方法调用。 } 我正在使用Spring和基于代理的方面。

  • 我试图围绕使用自定义注释注释的方法定义一个切入点。注释有一个参数,我想在切入点定义中包含一个检查。 这是注释: 如何应用注释的示例: 现在我想有两个切入点定义,根据注释的内容选择这两种方法。 在注释本身上创建切入点相对容易: 这将匹配@MyAnno的每次出现。但是我如何定义两个切入点,一个将与包含的匹配,另一个将与包含的匹配

  • 我试图在没有任何XML的情况下设置Spring AOP。我想启用

  • 在执行通知时,如何获取的和?我正在使用Spring 4.0.6、AspectJ 1.7.4

  • 我创建了自定义注释。我将用它来注释方法参数。 我在这里找到了一些示例代码,展示了如何创建针对自定义注释的切入点。 所以现在,我创建了一个带切入点的方面。但是我不知道如何获得用注释的参数值。