Jdk Regexp based Method Pointcut : Pointcut « Spring « Java Tutorial






File: Main.java

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.springframework.aop.Advisor;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.JdkRegexpMethodPointcut;

public class Main {
  public static void main(String[] args) {
      RegexpBean target = new RegexpBean();

      JdkRegexpMethodPointcut pc = new JdkRegexpMethodPointcut();
      pc.setPattern(".*foo.*");
      Advisor advisor = new DefaultPointcutAdvisor(pc, new SimpleAdvice());

      ProxyFactory pf = new ProxyFactory();
      pf.setTarget(target);
      pf.addAdvisor(advisor);
      RegexpBean proxy = (RegexpBean)pf.getProxy();

      proxy.foo1();
      proxy.foo2();
      proxy.bar();
  }
}
class SimpleAdvice implements MethodInterceptor {

  public Object invoke(MethodInvocation invocation) throws Throwable {
      System.out.println("SimpleAdvice.Invoking:" + invocation.getMethod().getName());
      Object retVal = invocation.proceed();
      System.out.println("SimpleAdvice.Done");
      return retVal;
  }
}

class RegexpBean {

  public void foo1() {
      System.out.println("RegexpBean.foo1");
  }

  public void foo2() {
      System.out.println("RegexpBean.foo2");
  }

  public void bar() {
      System.out.println("RegexpBean.bar");
  }
}
  Download:  Spring-JdkRegexpMethodPointcut.zip( 4,745 k)








28.56.Pointcut
28.56.1.Default Pointcut Advisor
28.56.2.Control Flow Pointcut
28.56.3.ComposablePointcut Union
28.56.4.ComposablePointcut Intersection
28.56.5.Class Filter In DynamicMethodMatcherPointcut
28.56.6.NameMatchMethodPointcutAdvisor
28.56.7.NameMatchMethodPointcut
28.56.8.Jdk Regexp based Method Pointcut
28.56.9.All Kinds Of Pointcut