Webcam Chat QuickBooks Advice international calling cards international phone cards
JavaBeat Java Books Certifications Certifications Kits Articles Tutorials Tips QNA Book Store Interview Questions SCJP 1.5 SCJP 1.6 SCWCD 5.0 SCBCD 5.0 SCEA SCJA Feeds

Dynamic Pointcut Example

Topic :
Feedback Request New QnA Print Email

public class SampleBean {

public void foo(int x) {
System.out.println("Invoked foo() with: " +x);
}

public void bar() {
System.out.println("Invoked bar()");
}
}


///////////////////////////////////////////////////////////////////////////////////////
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 java.lang.reflect.Method;

import org.springframework.aop.ClassFilter;
import org.springframework.aop.support.DynamicMethodMatcherPointcut;

public class SimpleDynamicPointcut extends DynamicMethodMatcherPointcut {

public boolean matches(Method method, Class cls) {
System.out.println("Static check for " + method.getName());
return ("foo".equals(method.getName()));
}

public boolean matches(Method method, Class cls, Object[] args) {
System.out.println("Dynamic check for " + method.getName());

int x = ((Integer) args[0]).intValue();

return (x != 100);
}

public ClassFilter getClassFilter() {
return new ClassFilter() {

public boolean matches(Class cls) {
return (cls == SampleBean.class);
}
};
}
}
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.aop.Advisor;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor;

public class DynamicPointcutExample {

public static void main(String[] args) {
SampleBean target = new SampleBean();

// create advisor
Advisor advisor = new DefaultPointcutAdvisor(
new SimpleDynamicPointcut(), new SimpleAdvice());

// create proxy
ProxyFactory pf = new ProxyFactory();
pf.setTarget(target);
pf.addAdvisor(advisor);
SampleBean proxy = (SampleBean)pf.getProxy();

proxy.foo(1);
proxy.foo(10);
proxy.foo(100);

proxy.bar();
proxy.bar();
proxy.bar();
}
}

Topic :
Feedback Request New QnA Print Email

All api java java 6.0 java 7.0 jdbc jsp servlet ejb jndi jms ejb 3.0 j2ee jee 5.0 jee 6.0 jsf struts spring Hibernate ajax JBoss Seam netbeans eclipse ant xml maven dojo junit javafx j2me log4j ESB JBoss Apache Quartz scjp mysql oracle gwt openjpa jmx yui google-guice android JBoss scwcd 5.0 scjp 1.5 scjp 1.6 scja scbcd 5.0

JavaBeat Website (2004-2011), India
javabeat | advertise | about us | contact | useful resources
Copyright (2004 - 2011), JavaBeat


Technology Blogs
Technology blogs Technology Blogs
blog log