Mega Code Archive

 
Categories / Java / Spring
 

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();              } }                    HelloWorldWithPointcut.zip( 1,480 k)