如果我们需要根据方法的参数不同而决定事都进行切入,而不是不管方法是什么参数全部切入的话,我们就需要使用动态切入点,在每次方法调用时候都进行检查(确切的说是参数检查),;来决定是否执行通知
BeanOne.java
package
DynamicPointCutAdvisor;
public class BeanOne ... {
public void foo()...{
System.out.println("foo-one");
}
public void bar()...{
System.out.println("bar-one");
}
public void dynamic(int x)...{
System.out.println(x);
}
}
public class BeanOne ... {
public void foo()...{
System.out.println("foo-one");
}
public void bar()...{
System.out.println("bar-one");
}
public void dynamic(int x)...{
System.out.println(x);
}
}
动态切入点:
package
DynamicPointCutAdvisor;
import java.lang.reflect.Method;
import org.springframework.aop.ClassFilter;
import org.springframework.aop.support.DynamicMethodMatcherPointcut;
public class SimpleDynamicPointcut extends DynamicMethodMatcherPointcut ... {
import java.lang.reflect.Method;
import org.springframework.aop.ClassFilter;
import org.springframework.aop.support.DynamicMethodMatcherPointcut;
public class SimpleDynamicPointcut extends DynamicMethodMatcherPointcut ... {