mybatis string转int_MyBatis 核心配置综述之 Configuration详解

本文详细介绍了MyBatis的Configuration对象,包括它的创建过程、配置标签及其使用,以及源码解析。Configuration是MyBatis的核心配置,涉及到properties、environments、mappers、settings等标签的解析,通过TypeAliases注册别名。文章还探讨了如何通过XMLConfigBuilder解析Configuration,展示了Configuration在事务、数据源、缓存等方面的初始化工作。
摘要由CSDN通过智能技术生成

爱情不是你想买,想买就能买;

MyBatis 不是你想起,想起就能起……

我承认我唱歌只有一个调。

今儿心情还不错,吐了个槽,还希望大家不要介意。

话说,我最近一直在研究 MyBatis ,研究 MyBatis ,必然逃不了研究 Configuration 对象,这个对象简直是太重要了,它是 MyBatis 起步的核心环境配置,下面我们来一起看一下 Configuration 类

Configuration 的创建

如果你喜欢一个妹子,你是不是闲得问清楚妹子住在哪?只加微信那就只能望梅止渴,主动出击才是硬道理。否则,就算你租了一辆玛莎拉蒂,你都不知道在哪装B。

想要了解 Configuration,得先问清楚它是如何创建的。

在这之前,我先告诉你一个 MyBatis 的入口类,那就是 SqlSessionFactoryBuilder, 为什么要介绍这个类哦?因为这个类可以创建 SqlSession,想要孩子?没有Builder 的功能怎么行?它的创建在这里

13967779819162300adf7c6f6b7e4e83.png

SqlSessionFactoryBuilder 在创建完成 XMLConfigBuilder 之后,会完成 Configuration 的创建工作,也就是说Configuration 对象的创建是在 XMLConfigBuilder 中完成的 ,如下图

32ec11e5d40ef194fee5d9838aecaf61.png

看到这里,你是不是有点跃跃欲试想要按住 control 键点进去?如你所愿,看一下 new Configuration 到底生出个什么东西

98be9975a92b2ac19dd482fde14467e4.png

这就是初始化 Configuration 完成的工作了,图中还有一个很关键的类就是 TypeAliasRegistry, 想要注册?你得先知道 “我” 是谁 。

TypeAliasRegistry 在Configuration 创建的时候就被初始化了

protected final TypeAliasRegistry typeAliasRegistry = new TypeAliasRegistry();

so? 看一下 new 都做了一些什么事情

public TypeAliasRegistry() {  registerAlias("string", String.class);  registerAlias("byte", Byte.class);  registerAlias("long", Long.class);  registerAlias("short", Short.class);  registerAlias("int", Integer.class);  registerAlias("integer", Integer.class);  registerAlias("double", Double.class);  registerAlias("float", Float.class);  registerAlias("boolean", Boolean.class);  registerAlias("byte[]", Byte[].class);  registerAlias("long[]", Long[].class);  registerAlias("short[]", Short[].class);  registerAlias("int[]", Integer[].class);  registerAlias("integer[]", Integer[].class);  registerAlias("double[]", Double[].class);  registerAlias("float[]", Float[].class);  registerAlias("boolean[]", Boolean[].class);  registerAlias("_byte", byte.class);  registerAlias("_long", long.class);  registerAlias("_short", short.class);  registerAlias("_int", int.class);  registerAlias("_integer", int.class);  registerAlias("_double", double.class);  registerAlias("_float", float.class);  registerAlias("_boolean", boolean.class);  registerAlias("_byte[]", byte[].class);  registerAlias("_long[]", long[].class);  registerAlias("_short[]", short[].class);  registerAlias("_int[]", int[].class);  registerAlias("_integer[]", int[].class);  registerAlias("_double[]", double[].class);  registerAlias("_float[]", float[].class);  registerAlias("_boolean[]", boolean[].class);  registerAlias("date", Date.class);  registerAlias("decimal", BigDecimal.class);  registerAlias("bigdecimal", BigDecimal.class);  regi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值