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

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

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

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

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

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

目录
相关文章
|
4月前
|
XML SQL Java
MyBatis 的延迟加载是如何实现的
MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
112 0
|
6月前
|
前端开发 JavaScript API
|
6月前
|
设计模式 安全 Java
面试官:说说反射的底层实现原理?
面试官:说说反射的底层实现原理?
92 0
|
6月前
|
存储 设计模式 Java
Mybatis源码细节探究:二级缓存Cache对象是在什么时候创建的?
Mybatis源码细节探究:二级缓存Cache对象是在什么时候创建的?
|
存储 算法 安全
关联对象的实现原理
这篇文章是来详细解释AssociationedObject的实现原理,篇幅较长
77 0
关联对象的实现原理
|
Web App开发 JavaScript 前端开发
前端优化的几种方法和底层原理
前端优化的几种方法和底层原理
103 0
|
JavaScript 前端开发 UED
延迟加载是什么,怎么使用?
延迟加载是什么,怎么使用?
95 0
|
SQL Java 数据库连接
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
101 0
|
SQL Java 数据库连接
Java 最常见的面试题:mybatis 是否支持延迟加载?延迟加载的原理是什么?
Java 最常见的面试题:mybatis 是否支持延迟加载?延迟加载的原理是什么?
图片懒加载的底层原理是什么?
图片懒加载的底层原理是什么?