Spring AOP 错误error at ::0 formal unbound in pointcut

原因:是我们在使用Before注解的时候,没有定义返回的参数,但是拦截的方法中缺需要传入一个参数,比如下面的“name”参数。如果Before注解拦截的方法需要接收参数,需要在Before中声明。

解决方法:

1. 去掉函数通知函数中的参数,

例如:

@Before("execution(* com.test.serivce..*.*(..))")
public void before(String name) {
System.out.println("前置通知:"+name);
}

改为

@Before("execution(* com.test.serivce..*.*(..))")
public void before() {
System.out.println("前置通知");
}

2 .加上args(name)  中间是before方法参数的名字

例如:

@Before("execution(* com.test.serivce..*.*(..))")
public void before(String name) {
System.out.println("前置通知:"+name);
}

改为

@Before("execution(* com.test.serivce..*.*(..))&& args(name)")
public void before(String name) {
System.out.println("前置通知:"+name);
}


参考:http://blog.csdn.net/wgw335363240/article/details/7191904


你可能感兴趣的:(Spring)