该切入点的格式问题是什么?

@Around("execution(* @myPackage.SafetyCritical.*(*))&& @annotation(deny)")

.i忘记添加:例外是“切入点格式不正确:期望'名称模式'(&&之前的最后一个括弧)

例如,切入点应与此类一起使用:

@SafetyCritical
public class SecureClass
{

    public SecureClass(){

    }
    @Deny
    public void isNotAllowed(){
        System.out.println("This should not happen");

    }

    @Allow
    public void isAllowed(){
        System.out.println("Allowed");

    }

}

===============>>#1 票数:1 已采纳

编辑:

我认为您要查找的切入点表达式将更像这样:

@Around("@target(myPackage.SafetyCritical) && @annotation(denyPackage.Deny)")

所述@target指示被用来匹配的已标有给定annoation类和@annotation指示符将过滤与注释的方法denyPackage.Deny注释。

同样,通过Spring文档了解有关AspectJ支持的信息将很有帮助。

原版的:

为了匹配任意数量的参数,传递给execution切入点指示符的参数定义应为“ ..”

@Around("execution(* myPackage.SafetyCritical.*(..)) && @annotation(deny)")

Spring文档提供了一些使用此示例表示接受任意数量参数的示例。

另外,我敢冒险猜测在您的软件包名称前面带有'@'符号是不可接受的。 您应该将其删除。

===============>>#2 票数:0

我使用了这样的切入点定义来匹配带注释的方法:

@Around("execution(@myPackage.SafetyCritical * *(..)) && @annotation(deny)")

@annotation(deny)的最后一部分(就像您已经知道的一样,但是有些其他人可能还不知道)是将注释绑定到名为“ deny”的通知方法参数。

编辑:根据您的更新,我不知道SafetyCritical是该类的注释。 我想那将成为target()目标的目标:

@Around("execution(* *(..)) && @target(myPackage.SafetyCritical) && @annotation(deny)")

  ask by Acdc RocknRoll translate from so

未解决问题?本站智能推荐:

2回复

将切入点与特定参数匹配

在Spring中,我需要一个将方法与特定参数匹配的表达式。 现在我有这个表情 但是我想匹配特定的参数,因为在我感兴趣的特定类中有4种delete方法。 我想要这样的东西 这是我写的,没有用。 我想念什么吗?
1回复

动态切入点表达式。

事情就是这样,我一直在研究带有AOP的监视解决方案,该解决方案可以扩展到任何类型的组件。 我会尽力在某些方面打破我的关注。 这个想法: 有一种机制可以根据类型(Spring Bean)定义动态切入点表达式。 我做了什么: 创建一个实现ApplicationContextAw
2回复

Spring aop切入点表达式来访问方法返回类型

我有一个带有许多方法的服务接口,所有这些方法都接受一个Request对象并返回一个Response对象。 所有请求对象都有一个共同的祖先,所有响应对象都有一个不同的共同祖先(它有一个成功标志和一个消息字段)。 现在,我希望有一个检查权限等的方面,执行服务调用并返回带有失败代码的Respo
1回复

Spring AOP动态切入点

CONTROLFLOWPOINTCUTS的目的是什么,目的是什么?可以在哪里使用? 动态切入点有哪些优势? 举例说明CONTROLFLOW POINTCUT,该示例在XML文件中配置(与源分离)
1回复

阅读和理解AspectJ切入点?

当服务器对象调用其公共方法时,这个名为服务的切入点会在程序执行中挑选出这些点。 它还允许使用服务切入点的任何人访问正在调用其方法的Server对象。 (摘自https://eclipse.org/aspectj/doc/released/progguide/language-anat
1回复

有没有办法改善此切入点?

我提出了以下用于跟踪方法进入/退出的切入点。 它没有坏,也可以满足我的要求,但是:1-我觉得它看起来笨拙或更优雅; 和2-我不知道它是否防弹。 有什么想法吗?
1回复

AspectJ与切入点混淆

我怎样才能表达一个只在从另一个方法中调用时才能找到方法的切点,而不是直接? 例如: 也 我只希望切入点在Foo()内工作 我试过“内部代码”,但这似乎只是直接起作用。 谢谢Eric
1回复

AspectJ,没有构造函数的常规切入点

我做了一个分析方法: 并将tld.mycompany.business.aspects.SystemArchitecture中的切入点定义为 和 我想在服务层中剖析所有不是构造函数和异常的方法(这样我就不会得到“不支持初始化左右(编译器限制)”和“不支持预初始化左右(编译
2回复

AspectJ:如何获得切入点来建议位于其他项目中的类

这应该很简单。 题 如何在一个项目中获得切入点来建议另一个项目中的代码/类? 上下文 我正在两个项目的日食工作。 为了便于解释,让我们称之为一个科学项目和另一个数学项目,并说科学项目依赖于数学项目,我同时在两个项目中进行开发。 数学项目是生产中的核心产品
3回复

请建议学习切入点表达的一些教程[关闭]

请为学习切入点表达建议一些教程/备忘单。