全民欢庆的五一劳动节,可谓是赏花赏月赏秋香的好季节,炎炎夏日,柳絮飞扬,短裙飞舞,低胸抢镜,是旅游撩妹裸奔等精彩活动的不二选择,不过,这显然与我无关。
终于要开启Mybatis的初始化过程分析了,是不是等的花儿都要开放了呢?
一般的框架分析思路都是从启动、初始化说起,然而,由于没有心理准备,初始化过程中会瞬间涌入大量的概念、类等等,类之间又存在爆炸性延伸,反而吓退了读者,有种吃不下这块肥肉的感觉。所以,我选择优先介绍一些易于理解的框架概念,然后再阅读和分析框架的启动和初始化流程,有了事先的精心准备,肥肉也就不再肥了。
我一直在反思,我的博文是否写的过长了,读者是否读的很累,是否没有描述清楚内容,是否没有抓住重点。因此,我大胆创新了博文的写作模式,叫精炼博文。
Mybatis的初始化过程,就是组装Configuration的过程,在这个过程中,用到了一些工具,我列举了六个基本工具,如图所示。

(Made In Edrawmax)
图中展示了XMLConfigBuilder为了组装出Configuration对象所作出的努力,配备了至少六个基本工具。本文的重点,就是分析这六个工具的作用。
好怕怕啊,一下子分析六个那么多。别怕,每个工具不超过三行代码,你就会彻底明白(相信你自己)。
1. ObjectFactory
ObjectFactory objectFactory = new DefaultObjectFactory();
List<String> list = objectFactory.create(ArrayList.class);
list.add("apple");
System.out.println(list);
out put:
[apple]
ObjectFactory:反射创建对象工厂类。
2. Reflector、Invoker、ReflectorFactory
ObjectFactory objectFactory = new DefaultObjectFactory();
Student student = objectFactory.create(Student.class);
Reflector reflector = new Reflector(Student.class);
Invoker invoker = reflector.getSetInvoker("studId");
invoker.invoke(student, new Object[] { 20 |转载的文章,经常丢失流程图、时序图,格式错乱等,还是看原版的比较好)





