创建Agernt
public class Agent {
public void speak(){
System.out.println("Hello");
}
}
创建代理
public class AgentDecorator implements MethodInterceptor {
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
System.out.println("James");
Object result = methodInvocation.proceed();
System.out.println("!");
return result;
}
}
创建Demo示例
public class AgentAopDemo {
public static void main(String[] args) {
Agent target = new Agent();
//ProxyFactory 创建目标代理对象
ProxyFactory proxyFactory = new ProxyFactory();
//织入通知
proxyFactory.addAdvice(new AgentDecorator());
//织入目标
proxyFactory.setTarget(target);
//生成代理对象
Agent agent = (Agent) proxyFactory.getProxy();
target.speak();
System.out.println("---");
agent.speak();
}
}