码上敲享录 > 互联网笔记 > 静态代理和动态代理简述

静态代理和动态代理简述

上一章章节目录下一章 2019-04-17已有2976人阅读 评论(0)

静态代理和动态代理简述


解决方法:

代理的共有优点:保证了业务类的重用性。

1.静态代理:代理对象和目标对象实现了相同的接口,目标对象作为代理对象的一个属性,具体接口实现中,代理对象可以在调用目标对象相应方法前后加上其他业务处理逻辑。
缺点:一个代理类只能代理一个业务类。如果业务类增加方法时,相应的代理类也要增加方法。


2.动态代理:在运行时借助于JDK动态代理,CGLIB等在内存中临时生成AOP动态代理类,动态代理是写一个类实现InvocationHandler接口,重写Invoke方法,在Invoke方法可以进行增强处理的逻辑的编写,这个公共代理类在运行的时候才能明确自己要代理的对象,同时可以实现该被代理类的方法的实现,然后在实现类方法的时候可以进行增强处理。因此也被称为运行时增强,Spring AOP用的就是动态代理。其实在Spring框架中用到就是JDK动态代理或者是CGLIB代理。默认的策略是如果目标类实现接口,则使用JDK动态代理技术,如果目标对象没有实现接口,则默认会采用CGLIB代理


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交