AspectJ表达式在切入点错误中提供正式的未绑定

par*_*ram 19 java spring spring-aop pointcut

我在aspectJ表达式中:

@Pointcut("within(com.param.cpms.dao.impl.ProjectMetaDaoImpl)")
public void daoExceptionHandle() {

}
Run Code Online (Sandbox Code Playgroud)

Spring 3.0启动时,我收到以下错误:

nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
Run Code Online (Sandbox Code Playgroud)

kri*_*aex 25

可能问题不在于您的切入点,而在于使用该切入点并使用切入点中不存在的参数的建议.只需从建议中删除参数(好吧,或将其添加到切入点).


vac*_*t78 6

该帖子相当陈旧,但为了完整起见,我添加了另一个原因,如果您使用@Around建议.

根据Spring AspectJ文档,建议的第一个参数必须是ProceedingJoinPoint.如果它丢失了,你将得到这个异常消息.可悲的是,异常并没有指出错误的建议,所以解决这个错误是一个小小的错过.


小智 5

我由于输入错误的类而收到此错误。我应该导入import org.aspectj.lang.JoinPoint类,但是应该从其他包中导入其他一些Joinpoint类。


Dap*_*Dan 5

这是Joinpoint(“ p小写”)

org.aopalliance.intercept.Joinpoint;
Run Code Online (Sandbox Code Playgroud)

更改为JointPoint(“ P大写)

org.aspectj.lang.JoinPoint; 
Run Code Online (Sandbox Code Playgroud)