延迟加载的底层原理知道吗?

简介: 延迟加载的底层原理知道吗?

延迟加载在底层主要使用的CGLIB动态代理完成的

第一是,使用CGLIB创建目标对象的代理对象,这里的目标对象就是开启了延迟加载的mapper

第二个是当调用目标方法时,进入拦截器invoke方法,发现目标方法是null值,再执行sql查询

第三个是获取数据以后,调用set方法设置属性值,再继续查询目标方法,就有值了

目录
相关文章
|
7月前
|
缓存 NoSQL Java
后端开发中缓存的作用以及基于Spring框架演示实现缓存
后端开发中缓存的作用以及基于Spring框架演示实现缓存
60 1
|
6月前
|
XML SQL Java
MyBatis 的延迟加载是如何实现的
MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
186 0
|
8月前
|
存储 消息中间件 Java
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
|
8月前
|
存储 设计模式 Java
Mybatis源码细节探究:二级缓存Cache对象是在什么时候创建的?
Mybatis源码细节探究:二级缓存Cache对象是在什么时候创建的?
|
Java 数据库连接 Spring
【Spring事务底层实现原理】
【Spring事务底层实现原理】
|
存储 算法 安全
关联对象的实现原理
这篇文章是来详细解释AssociationedObject的实现原理,篇幅较长
88 0
关联对象的实现原理
|
JavaScript 前端开发 UED
延迟加载是什么,怎么使用?
延迟加载是什么,怎么使用?
102 0
|
SQL Java 数据库连接
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
112 0
|
安全 Java
反射机制优缺点
总结起来,反射机制在Java语言中具有重要的意义,并且在许多实际应用中发挥着关键作用。然而,在使用反射时需要权衡其优缺点,并根据实际需求和场景做出明智的决策,以达到最佳的效果和性能。
189 0
|
安全 Java 数据安全/隐私保护
Java反射(扩展)(五)
前几篇文章讲述Java反射核心功能与用法,基本的常用方法都已经囊括里面了,本篇针是对前几篇文章进行补充。
116 2
Java反射(扩展)(五)