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

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

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

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

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

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

目录
相关文章
|
6月前
|
XML SQL Java
MyBatis 的延迟加载是如何实现的
MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
181 0
|
8月前
|
缓存 Java 数据库连接
MyBatis一级缓存解密:深入探究缓存机制与应用场景
MyBatis一级缓存解密:深入探究缓存机制与应用场景
128 2
MyBatis一级缓存解密:深入探究缓存机制与应用场景
|
Java 数据库连接 Spring
【Spring事务底层实现原理】
【Spring事务底层实现原理】
|
存储 算法 安全
关联对象的实现原理
这篇文章是来详细解释AssociationedObject的实现原理,篇幅较长
88 0
关联对象的实现原理
|
JavaScript 前端开发 UED
延迟加载是什么,怎么使用?
延迟加载是什么,怎么使用?
102 0
|
安全 Java
反射机制优缺点
总结起来,反射机制在Java语言中具有重要的意义,并且在许多实际应用中发挥着关键作用。然而,在使用反射时需要权衡其优缺点,并根据实际需求和场景做出明智的决策,以达到最佳的效果和性能。
189 0
|
SQL Java 数据库连接
Java 最常见的面试题:mybatis 是否支持延迟加载?延迟加载的原理是什么?
Java 最常见的面试题:mybatis 是否支持延迟加载?延迟加载的原理是什么?
图片懒加载的底层原理是什么?
图片懒加载的底层原理是什么?
|
SQL PHP 数据库
PDOstatement对象是干什么的?底层原理是什么?
PDOstatement对象是干什么的?底层原理是什么?
237 0
|
存储 缓存 NoSQL
Yii2.0的ActiveRecord类的缓存是干什么的?底层原理是什么?具体如何使用?
Yii2.0的ActiveRecord类的缓存是干什么的?底层原理是什么?具体如何使用?
159 0