SpringBoot/Spring AOP默认动态代理方式是什么


这篇文章主要介绍“SpringBoot/SpringAOP默认动态代理方式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot/SpringAOP默认动态代理方式是什么”文章能帮助大家解决问题。在 SpringBoot 2.x AOP中会默认使用Cglib来实现,但是Spring5中默认还是使用jdk动态代理。Spring AOP 默认使用 JDK 动态代理,如果对象没有实现接口,则使用 CGLIB 代理。当然,也可以强制使用 CGLIB 代理。在 SpringBoot 中,通过AopAutoConfiguration来自动装配AOP.Springboot 1.x AOP默认还是使用 JDK 动态代理的因为JDK 动态代理是基于接口的,代理生成的对象只能赋值给免费云主机域名接口变量。JDK动态代理使用Proxy.newProxyInstance()创建代理实现类,然而第二个参数就需要接口类型,如果没有接口类型就会报错。而 CGLIB 就不存在这个问题。因为 CGLIB 是通过生成子类来实现的,代理对象无论是赋值给接口还是实现类,这两者都是代理对象的父类。所以在2.x版本以上,将 AOP 默认实现改为了 CGLIB代理。新建一个接口新建一个ICustomService的实现类再增加一个类不实现任何接口然后启动,可以ICustomService和CustomNoImpl看出AOP的代理使用的是CGLIB的动态代理然后我们通过application.properties配置将代理默认设置为JDK代理。然后启动调试发现,CustomNoImpl因为没有实现接口,所以使用的是CGLIB生成的代理,而customService有接口实现,所以使用JDK的动态代理关于“SpringBoot/SpringAOP默认动态代理方式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: element el-upload文件上传覆盖第一个文件怎么实现

这篇文章主要介绍“elementel-upload文件上传覆盖第一个文件怎么实现”,在日常操作中,相信很多人在elementel-upload文件上传覆盖第一个文件怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”eleme…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/07 18:08
下一篇 06/07 18:09

相关推荐