静态代理与动态代理

1、静态代理

  (1)实现方式

    代理类和被代理类实现同一接口,代理类方法调用被代理类对应方法。

    ClassA.methodA()--->ClassB.methodA()

  (2)应用场景

    被代理的类少,或切面代码与被代理的类与很强的相关性。

2、动态代理

  (1)实现方式

    动态代理由三部分组成:动态生成的代理类,切面类和目标类,代理类和目标类实现同一接口,代理类调用切面类,切面类调用目标类。

    ProxyClassA.methodA()--->AspectClassA.invoke()--->TargetClassA.methodA()

  (2)应用场景

    需要被代理的类多,且切面代码具有普适性。

    

 

posted @ 2018-01-24 22:36  RobinsonZhang  阅读(129)  评论(0)    收藏  举报