public class Agent {
public void speak() {
System.out.print("Bond");
}
}
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class AgentDecorator implements MethodInterceptor {
public Object invoke(MethodInvocation invocation) throws Throwable {
System.out.print("James ");
Object retVal = invocation.proceed();
System.out.println("!");
return retVal;
}
}
import org.springframework.aop.framework.ProxyFactory;
public class AgentAOPDemo {
public static void main(String... args) {
Agent target = new Agent();
ProxyFactory pf = new ProxyFactory();
pf.addAdvice(new AgentDecorator());
pf.setTarget(target);
Agent proxy = (Agent) pf.getProxy();
target.speak();
System.out.println("");
proxy.speak();
}
}
一个简单的Spring AOP demo