java常用的设计模式之代理模式

  • 代理模式:给某一个对象创建一个代理对象,由这个代理对象控制对原对象的引用,创建这个代理对象就是可以在调用原对象的时候增加一些额外的操作。
  • Demo1:使用静态代理方式模拟实现数据库的插入操作,在操作前和操作后都需要打印日志到控制台

  • Demo2:使用动态代理方式模拟实现数据库插入操作,在操作之前和操作之后都需要打印日志到控制台
  • 小结:
    动态代理和静态代理的区别:
        静态代理在编码的时候就已经知道需要代理的对象以及方法;
        动态代理是在运行的时候才知道具体代理的对象和方法;
  • 动态代理:JDK动态代理、cglib动态代理
        JDK动态代理仅仅代理实现了接口的类
        cglib动态代理可以代理除了了final修饰的任何类,它的原理是对指定的目标生成一个子类,并覆盖其中的方法实现增强,因为采用的是继承,所以不能对final修饰的类进行代理
  • 拓展
    Spring AOP代理机制:
    1、如果目标对象实现了若干个接口,Spring使用JDK动态代理
    2、如果目标对象没有实现任何接口,spring使用cglib动态代理

(该文章纯属个人理解,如有错误希望大神纠正指导委屈委屈委屈委屈委屈委屈


猜你喜欢

转载自blog.csdn.net/fighting77Z/article/details/80227900