【mybatis源码学习】mybatis的反射模块
一、重要的类和接口
- org.apache.ibatis.reflection.MetaClass//对于javaBean的calss类进行反射操作的代理类(获取属性的类型,获取属性的get,set方法的Invoker对象等等)
- org.apache.ibatis.reflection.MetaObject//对于javaBean对象进行反射操作的代理类(获取属性值,设置属性值,获取属性信息等)
- org.apache.ibatis.reflection.Reflector//mybatis的需要进行反射操作的javaBean的反射信息的缓存类,相当于一个类的地图(属性的set,get方法,属性的calss类型)
- org.apache.ibatis.reflection.invoker.Invoker //对于javaBean的方法和属性的操作
- org.apache.ibatis.reflection.factory.ObjectFactory//对于class类型生成对象的工厂类
- org.apache.ibatis.reflection.ReflectorFactory//对calss类生成和查找Reflector的工厂类
二、在mybatis中的作用
1、在mybatis框架的中的作用
效率方面:缓存类的class信息,对反射相关的操作组件进行缓存,提高执行效率
业务框架方面:对于javaBean到sql语句的映射,使用反射进行相关属性的获取和设置
- javaBean转化成sql语句的参数的映射
- sql语句执行结果转化为javaBean的结果集映射
2、具体应用的地方