【问题标题】:How to match methods which do not have a specific Annotation in AspectJ如何匹配在 AspectJ 中没有特定注释的方法
【发布时间】:2012-05-30 10:55:14
【问题描述】:

我有一个名为@Invisible 的自定义注解。 现在我想匹配所有调用一个没有@Invisible Annotation 的方法。我怎样才能做到这一点? (有注解风格开发)

我的第一次尝试是:

@Pointcut("execution(!@my.package.Invisible * some.other.package.execute(..))")

但这似乎不起作用...

换句话说:如果该方法有 Invisible 注释,我想忽略它。否则我想根据我的建议执行一些代码......

【问题讨论】:

  • 你对这堂课之前有什么建议吗?换句话说,该类是否已被代理,可能会丢失注释? AFAIK 语法本身有效。
  • 试试execution(* some.other.package.execute(..)) && !@annotation(my.package.Invisible)
  • @KonstantinV.Salikhov 根据annotation pointcut notebook,您应该能够将其组合成一个表达式,但值得一试。
  • 非常感谢 :) @KonstantinV.Salikhov 的建议有效 :)
  • @KonstantinV.Salikhov:想发布一个答案供 user1291235 之后接受吗?

标签: java annotations aspectj pointcut


【解决方案1】:

尝试类似execution(* some.other.package.execute(..)) && !@annotation(my.package.Invisible)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多