该切入点的格式问题是什么?
@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");
}
}
最佳答案
编辑:
我认为您要查找的切入点表达式将更像这样:
@Around("@target(myPackage.SafetyCritical) && @annotation(denyPackage.Deny)")
@target
指示符用于匹配标记有给定注释的类,并且@annotation
指示符将过滤到使用denyPackage.Deny
注释进行标注的方法。同样,通过Spring Documentation regarding AspectJ support查看会很有帮助。
原版的:
为了匹配任意数量的参数,传递给
execution
切入点指示符的参数定义应为“ ..”@Around("execution(* myPackage.SafetyCritical.*(..)) && @annotation(deny)")
Spring documentation有一些使用此示例表示接受任意数量参数的示例。
另外,我冒昧地猜想,在包名前面加'@'符号是不可接受的。您应该删除它。
关于java - 切入点格式不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8474183/