闲来无事,加载了mybatis框架的源码,调试运行后进入框架的内部去阅读,仅仅一个configuration类就令人大开眼界啊。
不仅对所需要的数据进行了分类和封装,还使用了Xpath和反射等等技术来解析配置文件;同时也对java和主流数据库里的数据类型进行了映射;而且对各种对象都进行了抽象和接口化,整体设计赏心悦目。
使用动态代理的技术,给接口创建对象,让代理对象执行方法,出乎我的预料。我本肤浅地以为,应该是用反射的技术创建的临时对象,去执行方法……
在代理类的内部对SQL语句的解析,复杂的同时不失条理,目前学力尚浅的我也只能看看浮在水面的部分而已了,因为还用到了很多没见过的其它的接口和类来实现,继续探究下去的话,就仿佛陷入汪洋大海。
在执行SQL语句的代码里,看到了mybatis对缓存的处理,学习到了在改数据之前需要清空脏数据,以及在查数据之后要把新数据加入到缓存中。
本次阅读框架的时间尚短,心得只有这些了,期待下次能学到更多。