mybatis的源码解析-2-对xml文件解析-3-typeAliases

typeAliases解析:

1简介

typeAliases别名,作用是对类起一个简单的名字,通过配置别名,我们不用再指定完整的包名,并且还能取别名。

2用法

别名主要有三种写法:

1<package name="cn.itcast.mybatis.po"/>
2<typeAlias type="cn.itcast.mybatis.po.User" alias="user"/>
3<typeAlias type="cn.itcast.mybatis.po.User"/>

第一种方式遍历name的包下所有的类,将类下的所有类的全部名字小写作为别名.第二种方式类似第一种方式将类的全部名字小写作为别名

最常用的方式是第一种,不过通过对源码的解析我们可以看到这三种方式最后都是调用了第二种方式的解析方法.

当然还有注解方式,不过基本不用,没写.

3源码解析

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

Mybatis默认支持的别名在TypeAliasRegistry类中的唯一构造方法(无参)中注册过.

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

 

registerAliases此方法的所有方法最后都调用方式二的方法

public void registerAlias(String alias, Class<?> value) {}

Configuration类中有此属性,即将TYPE_ALIASES放到TypeAliasRegistry,TypeAliasRegistry放到Configuration类中

Protected final TypeAliasRegistry typeAliasRegistry = new TypeAliasRegistry();

 

Configuration类的构造方法中注册了其他别名列出一些

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

1对第二种方式解析

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

 

2对第一种方式解析

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

 mybatis的源码解析-2-对xml文件解析-3-typeAliases

3对第三种方式解析

在第一种方式的基础上直接调用此方法--在第一种方法中讲过.

 public void registerAlias(Class<?>type) {}

 借鉴网址:http://www.cnblogs.com/dongying/p/4037678.html