我是AOP的新手.我有这样的问题.
package org.suman.Aspect;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class LoginAspect {
//@Before("execution(public String getName())")
//@Before("execution(public String org.suman.Model.Triangle.getName())")
//@Before("execution(* get*())")
//@Before("execution(* get*(..))")
//@Before("execution(* org.suman.Model.*.get*())")
//@Before("execution(* get*())&& within(org.suman.Model.Circle)")
@Before("execution(* get*())&& allCircle()")
//@Before("allGetters() && allCircle()")
public void LoginAdvice()
{
System.out.println("Advice run.. getMethod is called");
}
@Before("execution(* get*())")
//@Before("allGetters()")
public void SecondAdvice()
{
System.out.println("this is a second Advice");
}
@Pointcut("execution(* get*())")
public void allGetters(){}
//@Pointcut("execution (* * org.suman.Model.Circle.*(..))")
@Pointcut("within(org.suman.Model.Circle)")
public void allCircle(){}
}
Run Code Online (Sandbox Code Playgroud)
当使用切入点时,方法allGetters()为LoginAdvice方法,如果我使用@Before("execution(*get*())"然后没有错误但是如果我使用@Before("allGetters()")则会给出错误" java.lang.IllegalArgumentException::: 0处的错误找不到引用的切入点allGetters
如果我使用@Before("execution(*get*())&&(org.suman.Model.Circle)")而不是方法名称,它可以工作.
我的xml是这样的:
<?xml version="1.0" encoding="UTF-8" …Run Code Online (Sandbox Code Playgroud) spring-aop ×1