spring aop实现原理就是代理模式即一个接口有两个实现类,一个具体实现类,一个代理类,通过反射将切片类对象和具体实现类对象传入代理类方法,然后通过反射
的到要执行的具体实现类的方法,和切片类方法并执行;
动态代理实现主要是实现InvocationHandler,并且将目标对象注入到代理对象中,利用反射机制来执行目标对象的方法。
代理模式最简单例子
interface HelloI{
public void say();
}
class HelloImpl implements HelloI{
public void say(){
System.out.println(“FUCK U”);
}
}
class ProxyHello implements HelloI{
private HelloI hello;
public ProxyHello( HelloImpl hello){
this.hello=hello;
}
public void say(){
System.out.println(“FUCK U MOM”);//切片
hello.say();
System.out.println(“FUCK U FAR“);//切片
}
}
public static viod main(String[] args){
HelloI h =new ProxyHello(new HelloImpl ());
h.say();
}