zoukankan      html  css  js  c++  java
  • 【mybatis源码学习】mybtias基础组件-反射工具

    一、JavaBean的规范

    类中定义的成员变量也称为字段,属性则是通过getter/setter方法得到的,属性只与类中的方法有关,与是否存在对应成员变量没有关系。

    属性的getter/setter方法与同名的字段,常常是一起出现。但还是有必要区分他们是两个概念。

    例如:getA方法和setA(String)方法,无论类中是否定义了字段String a,我们都认为类中存在属性a.

    二、mybatis的反射类型

    1、org.apache.ibatis.reflection.Reflector

    对Class做一些反射的操作。
    具有缓存的特性,提升运行效率。
    比如:setter/getter方法,属性。

    2、org.apache.ibatis.reflection.ReflectorFactory,org.apache.ibatis.reflection.DefaultReflectorFactory

    对class对象生成Reflector
    工厂模式

    3、org.apache.ibatis.reflection.TypeParameterResolver

    获取javaBean中的属性的java类型
    获取javaBean的Method的参数类型和返回类型

    4、org.apache.ibatis.reflection.factory.ObjectFactory,org.apache.ibatis.reflection.factory.DefaultObjectFactory

    mybatis根据class创建对象的工厂类

    5、org.apache.ibatis.reflection.MetaClass

    对Reflector,和ReflectorFactory封装
    主要是解决对类级别的元信息的操作

    6、org.apache.ibatis.reflection.wrapper.ObjectWrapper

    ObjectWrapper接口是对对象的包装,抽象了对象的属性信息。
    它定义了一系列查询对象属性信息的方法。

    7、org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory,org.apache.ibatis.reflection.wrapper.DefaultObjectWrapperFactory
    对对象的包装

    8、org.apache.ibatis.reflection.MetaObject

    ObjectWrapper提供了获取/设置对象中指定的属性,检测getter/setter等常用功能。
    但是ObjectWrapper只是这些功能的最后一站,我们省略了对属性表达式解析过程的介绍。而该解析过程是在MetaObject中实现的。
     
  • 相关阅读:
    [Learn AF3]第二章 App Framework 3.0的组件View——AF3的驱动引擎
    [Learn AF3]第一章 如何使用App Framework 3.0 构造应用程序
    [译]Intel App Framework 3.0的变化
    手机浏览器中屏蔽img的系统右键菜单context menu
    HTML5 touche vents drag to move & AF actionsheet by longTap
    HTML5 FileReader
    【转】Gulp入门基础教程
    【Intel AF 2.1 学习笔记三】
    【Intel AF 2.1 学习笔记二】AF中的页面——Panel
    【Intel AF 2.1 学习笔记一】AF程序结构
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/10460306.html
Copyright © 2011-2022 走看看