Proxy 代理模式
代理模式
静态代理

代理对象和被代理对象实现同一个接口,代理对象中传入被代理对象,调用代理对象的方法时候同步调用被代理对象的方法,从而在实现原有功能的基础上加一些前置或者后置的操作。
动态代理
代理类为动态生成的,使用jdk的java.lang.reflect.Proxy利用asm生成代理类
采用java.lang.reflect.Proxy
public class test {public static void main(String[] args) throws InterruptedException {Car car = new Car();Movable movable=(Movable)Proxy.newProxyInstance(Car.class.getClassLoader(), Car.class.getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("car befer....");method.invoke(car,args);System.out.println("car after....");return null;}});movable.move();}}interface Movable{void move();}class Car implements Movable{@Overridepublic void move() {System.out.println("car move.....");}}
采用cglib的动态代理,可以不用
