扫码阅读
手机扫码阅读
Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理?
6 2024-11-27
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
江南一点雨
扫码关注公众号
摘要
松哥正在录制TienChin项目视频,使用Spring Boot和Vue3技术栈。
Java的动态代理
Java中的动态代理有两种实现方式:基于JDK的动态代理和基于Cglib的动态代理。基于JDK的代理要求对象有接口,而Cglib不需要。
Spring中的AOP实现
Spring中的AOP实现,如果代理对象有接口则使用JDK动态代理,没有接口则使用Cglib动态代理。
Spring Boot中的AOP实现
Spring Boot在2.0版本之前,根据application.properties中spring.aop.proxy-target-class属性的配置决定使用JDK还是Cglib代理。Spring Boot 2.0及之后版本,如果没有配置,默认使用Cglib代理。
实践
创建一个使用最新版Spring Boot的项目,通过简单的例子可以验证默认使用Cglib代理。若要使用JDK代理,需要在application.properties中设置spring.aop.proxy-target-class为false。
小结
Spring中的AOP默认根据有无接口使用JDK或Cglib代理。Spring Boot 2.0之后,默认使用Cglib代理,但可以通过配置改为JDK代理。
想要了解更多内容?
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线