学习笔记:动态代理和静态代理

    技术2025-03-06  53

    静态代理的缺点:

    1.当有多个类需要代理(业务需求不同时),那么就需要创建多个代理,同时创建多个代理对象去调用相应的方法 2.或者让一个代理类去实现多个接口,然后让代理创建的代理类需要重写全部的方法

    动态代理

    动态代理可以解决上述问题. 1.动态代理的代理对象时运行时动态产生,无需写多个代理对象 2.通过代理对象调用目标方法 3.动态代理产生代理对象的过程中,底层使用了反射

    流程:

    1.动态代理类需要实现InvocationHandler接口,重写invoke方法,它的返回值回一个代理对象,可以直接return method(被代理对象,args) 2.然后在main方法中去使用Proxy.newProxyInstance()方法,去创建一个动态代理类对象. 3.Proxy.newProxyInstance()方法需要传入三个值,分别是: 1)类加载器:ClassLoader.getSystemClassLoader(), 2)动态代理类需要实现的接口:new Class[]{接口.class} 3):new 动态代理类(被代理对象)
    Processed: 0.019, SQL: 9