This NameMatchMethodPointcut matches for simple method name, its alternative is regexp patterns. Does not handle overloaded methods, in this all methods *with a given name will be eligible.
SimpleBean.java
package roseindia.net.bean;
public class SimpleBean {
public void sayHi() {
System.out.println("Hi Friend");
}
public void sayHi(String name) {
System.out.println("Hi " + name);
}
public void greet() {
System.out.println("Have a Nice Day......");
}
}
SimpleAdvice.java
package roseindia.net.advice;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class SimpleAdvice implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
// TODO Auto-generated method stub
System.out.println("Proceed " + methodInvocation.getMethod().getName()
+ "()");
Object object = methodInvocation.proceed();
System.out.println("Method End");
return object;
}
}
MainClaz.java
package roseindia.net.main;
import org.springframework.aop.Advisor;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.NameMatchMethodPointcut;
import roseindia.net.advice.SimpleAdvice;
import roseindia.net.bean.SimpleBean;
public class MainClaz {
public static void main(String[] args) {
SimpleBean simpleBean = new SimpleBean();
NameMatchMethodPointcut nameMatchMethodPointcut = new NameMatchMethodPointcut();
nameMatchMethodPointcut.addMethodName("sayHi");
nameMatchMethodPointcut.addMethodName("greet");
SimpleAdvice simpleAdviceadvice = new SimpleAdvice();
Advisor advisor = new DefaultPointcutAdvisor(nameMatchMethodPointcut,
simpleAdviceadvice);
ProxyFactory proxyFactory = new ProxyFactory();
proxyFactory.addAdvisor(advisor);
proxyFactory.setTarget(simpleBean);
SimpleBean proxyBean = (SimpleBean) proxyFactory.getProxy();
proxyBean.sayHi("Vinay");
proxyBean.sayHi();
proxyBean.greet();
}
}
| Proceed sayHi() Hi Vinay Method End Proceed sayHi() Hi Friend Method End Proceed greet() Have a Nice Day...... Method End |