随笔分类 - 源码解析
摘要:问题分析 A依赖B B又依赖A所构成的一种循环,也可以称为循环依赖,试想下这个场景在MyBatis中会怎样?如果不管的话那就是无限制的去数据库查询了。 demo <resultMap id="authorMap" type="org.apache.ibatis.demo.Author"> <resu
阅读全文
摘要:MyBatis作为持久层框架,它最牛逼的地方就是将查询的结果集与Java对象进行映射,让我们解放双手,不用操心双方模型的关系处理,那它怎么实现的呢? 先介绍下ResultMap,ResultMapping ResultMap&ResultMapping ResultMap就是平常我们编写的Mappe
阅读全文
摘要:MetaObject是个反射工具类它支持以“点.”的方式向下递归反射创建对象,属性赋值以及通过key名获取集合对象。 测试 public void shouldGetAndSetNestedField() { // 创建一个普通bean RichType rich = new RichType();
阅读全文
摘要:代理模式是个结构性模式,主要是在原基础上添加了一个代理类来控制访问目标类的方式,这样做的好处是双方可以不用直接通信,实现了松耦合的效果使真实对象可以更专心做自己的事(单一职责,最少知识职责)更独立,维护成本更低!! JDK动态代理是基于接口实现的,有想过为什么要用实现,不用继承吗?? 测试案例 被代
阅读全文