Hello World With Pointcut
/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress */ /////////////////////////////////////////////////////////////////////////////////////// public interface IMessageWriter { public void writeMessage(); } /////////////////////////////////////////////////////////////////////////////////////// public class MessageWriter implements IMessageWriter{ public void writeMessage() { System.out.print("World"); } } /////////////////////////////////////////////////////////////////////////////////////// import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; import org.springframework.aop.framework.ProxyFactory; public class SimpleBeforeAdvice implements MethodBeforeAdvice { public void before(Method method, Object[] args, Object target) throws Throwable { System.out.println("Before method: " + method.getName()); } } /////////////////////////////////////////////////////////////////////////////////////// public class ErrorBean { public void errorProneMethod() throws Exception { throw new Exception("Foo"); } public void otherErrorProneMethod() throws IllegalArgumentException { throw new IllegalArgumentException("Bar"); } } /////////////////////////////////////////////////////////////////////////////////////// import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.support.DefaultPointcutAdvisor; public class HelloWorldWithPointcut { public static void main(String[] args) { // get proxy ProxyFactory pf = new ProxyFactory(); pf.addAdvisor(new DefaultPointcutAdvisor(new SimpleBeforeAdvice())); pf.setTarget(new MessageWriter()); MessageWriter proxy1 = (MessageWriter)pf.getProxy(); pf.setTarget(new MessageWriter()); MessageWriter proxy2 = (MessageWriter)pf.getProxy(); proxy2.writeMessage(); pf.setTarget(new ErrorBean()); ErrorBean proxy3 = (ErrorBean)pf.getProxy(); proxy3.hashCode(); } }