今天刚学spring的aop的时候,用到了切点方面的知识。在测试的时候抛出了Pointcut is not well-formed: expecting 'name pattern' at character position 58的异常。错误指定在使用注解@Pointcut那里。
package com.aop.aspect;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class RoleAspect {
@Pointcut("execution(*com.aop.service.impl.RoleServiceImpl.printRole(..))")
public void print(){
}
@Before("print()")
public void before(){
System.out.println("before...");
}
@After("print()")
public void after(){
System.out.println("after...");
}
@AfterReturning("print()")
public void afterReturning(){
System.out.println("afterReturning...");
}
@AfterThrowing("print()")
public void afterThrowing(){
System.out.println("afterThrowing...");
}
}
我检查了很多遍和书上的代码是一样的。然后不断运行也是不断抛出异常。
最后仔细看书是那个Pointcut("execution(* com 这里的问题。
*后面要加个空格
最后就可以跑起来了。
要注意小细节。