mybatis源码阅读笔记一reflection包

2018-03-25  本文已影响0人  noexceptionsir

首先看下整个包的结构:


reflection

一、factory包

factory包中有一个接口ObjectFactory和这个接口的唯一实现类DefaultObjectFactory,从名字上看起来像是一个工厂?


factory包

ObjectFactory

ObjectFactory接口中有4个方法:

DefaultObjectFactory

二、invoker包

invoker包

一个Invoker接口,三个实现类。

Invoker接口

只有两个方法


Invoker

GetFieldInvoker类

实现Invoker接口,调用Field.get()和Field.getType()

SetFieldInvoker类

实现Invoker接口,调用Field.set()和Field.setType()

MethodInvoker类

这个类同样是实现Invoker接口,调用method.invoke(),与前面两个类不同的是,这个类的构造函数,如果方法只有一个参数就直接返回type,如果有多个参数,就返回invoke()执行后返回的类型。

property包

property包

PropertyCopier类

只有一个方法
copyBeanProperties():属性复制,父类的属性都要复制过来

PropertyNamer

PropertyTokenizer

迭代器模式的实现,实现了Iterator接口,迭代获取类似first[0].second[1].third[0]这种属性。

wrapper包

wrapper包

包的结构如图所示


Wrapper包结构

ObjectWrapper接口

对象包装器

BaseWrapper

上一篇 下一篇

猜你喜欢

热点阅读