Mega Code Archive

 
Categories / Java / Spring
 

Name Pointcut Example

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress */ /////////////////////////////////////////////////////////////////////////////////////// public class NameBean {     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");     } } /////////////////////////////////////////////////////////////////////////////////////// import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class SimpleAdvice implements MethodInterceptor {     public Object invoke(MethodInvocation invocation) throws Throwable {         System.out.println(">> Invoking " + invocation.getMethod().getName());         Object retVal = invocation.proceed();         System.out.println(">> Done");         return retVal;     } } /////////////////////////////////////////////////////////////////////////////////////// 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 NamePointcutExample {     public static void main(String[] args) {         NameBean target = new NameBean();         // create advisor         NameMatchMethodPointcut pc = new NameMatchMethodPointcut();         pc.addMethodName("foo");         pc.addMethodName("bar");         Advisor advisor = new DefaultPointcutAdvisor(pc, new SimpleAdvice());                  // create the proxy         ProxyFactory pf = new ProxyFactory();         pf.setTarget(target);         pf.addAdvisor(advisor);         NameBean proxy = (NameBean)pf.getProxy();                  proxy.foo();         proxy.foo(999);         proxy.bar();         proxy.yup();     } } ///////////////////////////////////////////////////////////////////////////////////////                     NamePointcutExample.zip( 1,479 k)