Spring AOP java.lang.IllegalArgumentException: ::0 切入点正式未绑定时出错
Spring AOP java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
我想创建一个方面,它将拦截所有用 MyAnnotation
注释并具有 MyAbstractObject
参数类型的方法(不同的 类 扩展它和那些具有 类 的方法扩展它也应该被拦截)
@Before("@annotation(mypackage.MyAnnotation) && args(mypackage.MyAbstractObject ,..)")
public void doSomething(MyAbstractObject myObject)
示例方法:
@MyAnnotation
public void toBeIntercepted(MyObjectExtendingMyAbstractObject x)
它只使用注释。但是我不得不从难看的关节点中提取参数。现在我正在改变它。
这会产生以下异常:
Caused by: java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:319) ~[aspectjweaver-1.9.4.jar:na]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:227) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.obtainPointcutExpression(AspectJExpressionPointcut.java:198) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:177) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:225) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]```
args()
格式不正确。
该切入点表达式的正确格式如下
@Before("@annotation(mypackage.MyAnnotation) && args(myObject,..)")
public void doSomething(MyAbstractObject myObject) {}
我想创建一个方面,它将拦截所有用 MyAnnotation
注释并具有 MyAbstractObject
参数类型的方法(不同的 类 扩展它和那些具有 类 的方法扩展它也应该被拦截)
@Before("@annotation(mypackage.MyAnnotation) && args(mypackage.MyAbstractObject ,..)")
public void doSomething(MyAbstractObject myObject)
示例方法:
@MyAnnotation
public void toBeIntercepted(MyObjectExtendingMyAbstractObject x)
它只使用注释。但是我不得不从难看的关节点中提取参数。现在我正在改变它。
这会产生以下异常:
Caused by: java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:319) ~[aspectjweaver-1.9.4.jar:na]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:227) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.obtainPointcutExpression(AspectJExpressionPointcut.java:198) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:177) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:225) ~[spring-aop-5.1.7.RELEASE.jar:5.1.7.RELEASE]```
args()
格式不正确。
该切入点表达式的正确格式如下
@Before("@annotation(mypackage.MyAnnotation) && args(myObject,..)")
public void doSomething(MyAbstractObject myObject) {}