zoukankan      html  css  js  c++  java
  • MyBatis别名

    Spring的别名管理比较规范,有严格的接口规范,SimpleAliasRegistry实现 -> AliasRegistry接口,而且是线程安全的,Map也用的是ConcurrentHashMap,key是String,value是String,而且可以循环引用。

    mybatis的别名管理器是TypeAliasRegistry类,个人感觉有点不规范,可能是看Spring源码看多了,线程不安全,Map用的是普通的HashMap,key是String,value是Class<?>,没有循环引用问题。

    先从TypeAliasRegistry构造函数开始,先注册一些别名:

    8大基本数据类型的添加,加了一个下划线"_"

    8个基本数据类型的包装类型

    和一些集合框架常用的类的别名。

    再看Configuration的构造函数,注册了一些常用的别名。

    还有一个途径就是,mybatis-config.xml文件中配置typeAlias标签,

    有两种方式,直接定义别名使用"alias"与"type",另一种是扫描包方式使用"package",该包下使用@Alias注解,都会注册进管理器中。

    从方法开始:Class<T> resolveAlias(String string) ;

    内部实现是先从Map中获取,获取到就返回,获取不到就把这个字符串当做类的全限定名,使用Class<?> c = Class.forName方法返回。

  • 相关阅读:
    Java基础知识整理
    HashMap源码解读(JDK1.7)
    书籍列表
    mysql4
    mysql3
    mysql2
    mysql1
    数据结构4
    数据结构3
    数据结构2
  • 原文地址:https://www.cnblogs.com/kingofkai/p/10167690.html
Copyright © 2011-2022 走看看