设计模式之动态代理

Posted dushenzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之动态代理相关的知识,希望对你有一定的参考价值。

动态代理模式,在当前流行框架(如:Spring、Mybatis、Dubbo)中应用非常广泛,掌握动态代理模式是理解框架源码的基础。如果未来你参与框架的设计与开发,动态代理模式必将成为你的利器。

       动态代理的实践:一、创建实现InvocationHandler接口的类,并重写invoke方法;二、使用Proxy.newProxyInstance创建代理对象;三、JDK的动态代理针对的是接口(使用Mybatis的时候我们创建的Mapper都是接口,接口没有实现类是如何正常调用的呢,答案就是动态代理)。

技术分享图片
技术分享图片
技术分享图片
技术分享图片

       日志打印:

技术分享图片

       接下来我们来看下Mybats的动态代理实践:

技术分享图片
技术分享图片

       划重点:动态代理是一种思想,提供了对同一类问题集中统一的解决方案。就如Mybatis,所有的Mapper都由统一的动态代理类处理。思想是根基,更重要的是后续统一处理操作,这个就需要根据具体框架使用场景具体实现了。

以上是关于设计模式之动态代理的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式-代理模式之动态代理(附源代码分析)

《设计模式之禅》--代理扩展:动态代理

#yyds干货盘点# 设计模式之代理模式:动态代理

设计模式之动态代理

程序设计优化——代理模式之动态代理

设计模式之动态代理