Spring框架中动态代理的示例分析

这篇文章主要为大家展示了“Spring框架中动态代理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring框架中动态代理的示例分析”这篇文章吧。

光泽网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联公司自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

之前我们已经介绍了AOP相关的知识,并且了解了spring是通过动态代理的方式实现AOP逻辑的。在spring中动态代理也分为两种一种是JDK动态代理,一种是CGLib动态代理。下面我们看一下这两种动态代理的区别。我们首先看一下在没有动态代理时,添加事物的的逻辑处理。

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

虽然上述代码已经实现了我们的逻辑,但是在上一篇中我们已经介绍过了,上述代码的问题就是会有重复的有关事物的代码添加到业务类中,这样很不方便维护。解决的办法就是通过AOP方式来解决,下面我们分别采用JDK动态代理和CGLib动态代理技术来解决上述问题。

  • JDK动态代理

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

上述代码就是采用JDK动态代理技术实现AOP功能的,通过上述代码实现AOP功能虽然比较简单,但是有一个弊端就是JDK代理只能支持接口类型,也就是只能为接口提供动态代理功能,而CGLib动态代理则可以直接为类创建代理类。下面我们通过CGLib动态代理实现上述功能。

  • CGLib动态代理

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

Spring框架中动态代理的示例分析

  • JDK动态代理与CGLib动态代理的区别

  1. JDK动态代理只能为接口创建代理类,而CGLib动态代理而可以直接为类创建代理类。

  2. JDK动态代理创建代理类的速度要比CGLib动态代理创建代理类的速度要快。

  3. CGLib动态代理创建代理类的性能要比JDK动态代理创建代理类的性能要高。

所以在为单例对象创建代理类时,因为不需要频繁的创建代理对象,所以优先考虑用CGLib动态代理来创建,这样该代理类的执行时的性能比较高,反之则采用JDK动态代理创建代理类。

以上是“Spring框架中动态代理的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

分享标题:Spring框架中动态代理的示例分析
本文路径:https://www.cdcxhl.com/article46/pdpdhg.html

成都网站建设公司_创新互联,为您提供外贸网站建设营销型网站建设移动网站建设网页设计公司做网站动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作