摘要: JDK就能实现动态代理,为什么还需要CGLib动态代理 CGLib动态代理不要求委托类实现接口,没有接口照样能实现代理业务 CGLib动态代理能够实现基于方法级别的拦截处理 CGLib动态代理执行方法,不是使用反射执行Method.invoke() CGLib可以针对同一个委托类的不同方法可以使用不 阅读全文
posted @ 2021-01-14 22:04 刘指导 阅读(139) 评论(0) 推荐(0) 编辑
摘要: CGLib原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final的方法。在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势植入横切逻辑。 CGLib动态代理是利用ASM开源包,对代理对象类的class文件,通过修改其字节码生成子类来处理。核心是实现MethidIntercept 阅读全文
posted @ 2021-01-14 22:03 刘指导 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 静态代理与动态代理的区别 静态代理在编译时就已经实现,编译完成后代理类是一个实际的class文件 动态代理是在运行时动态生成的,即编译完成之后没有实际的class文件,而是在运行时动态生成类字节码 ,并加载到JVM中 动态代理分为:JDK动态代理和CGLib动态代理 【二者具体的区别在后面章节进行介 阅读全文
posted @ 2021-01-14 21:55 刘指导 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 代理模式是23种设计模式之一,提供了对目标对象额外的访问方式,即通过代理对象来访问目标对象,扩展业务功能,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能(满足开闭原则)。 简而言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。 阅读全文
posted @ 2021-01-14 21:42 刘指导 阅读(125) 评论(0) 推荐(0) 编辑