1、静态代理
静态代理
什么是静态代理
1)代理者和被代理者都实现了相同的接口(或继承相同的父类)
2)代理者包含了一个被代理者的对象
3)调用功能时,代理者会调用被代理者的功能,同时附加新的操作
2、动态代理
动态代理
动态代理的特点:
1) 在不修改原有类的基础上,为原来类添加新的功能
2) 不需要依赖某个具体业务
动态代理分为:JDK动态代理和CGLib动态代理
区别是:
JDK动态代理的被代理者必须实现任意接口
CGLib动态代理不用实现接口,是通过继承实现的
JDK动态代理
实现步骤:
1)代理类需要实现InvocationHandler接口
2)实现invoke方法
3)通过Proxy类的newProxyInstance方法来创建代理对象