Mega Code Archive

 
Categories / Java Tutorial / Spring
 

Implements MethodInterceptor

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.NameMatchMethodPointcut; public class Main {   public static void main(String[] args){     MyClass target = new MyClass();     NameMatchMethodPointcut pc = new NameMatchMethodPointcut();     pc.addMethodName("foo");     pc.addMethodName("bar");     Advisor advisor = new DefaultPointcutAdvisor(pc, new SimpleAdvice());     ProxyFactory pf = new ProxyFactory();     pf.setTarget(target);     pf.addAdvisor(advisor);     MyClass proxy = (MyClass)pf.getProxy();     proxy.foo();     proxy.foo(1);     proxy.bar();     proxy.yup();   } } class SimpleAdvice implements MethodInterceptor {   public Object invoke(MethodInvocation invocation) throws Throwable {       System.out.println("start: " + invocation.getMethod().getName());       Object retVal = invocation.proceed();       System.out.println("end");       return retVal;   } } class MyClass {   public void foo() {       System.out.println("foo");   }   public void foo(int x) {       System.out.println("foo " + x);   }   public void bar() {       System.out.println("bar");   }   public void yup() {       System.out.println("yup");   } }