推荐学习
- 腾讯后台开发,2面技术+HR面+offer审批,我只花了7天
- 听说你很懂源码?Spring读懂了?还有这20道源码面试题接得住吗?
- 重识SSM,“超高频面试点+源码解析+实战PDF”,一次性干掉全拿走
前言
今天这咱主要介绍一下MyBatis的全局配置文件的使用
configuration
mybatis-config.xml文件的头部格式我们就不说了,直接从属性开始介绍,configuration为最顶层节点,其余所有的属性都必须嵌套在configuration内,MyBatis配置文件的顶层节点如下:
<properties></properties><!-- 属性 -->
<settings></settings> <!-- 设置-->
<typeAliases></typeAliases><!-- 配置别名 -->
<typeHandlers></typeHandlers><!-- 类型处理器 -->
<objectFactory></objectFactory><!-- 对象工厂 -->
<plugins></plugins><!-- 插件 -->
<environments default=""><!-- 环境配置-->
<environment id=""><!-- 环境变量 -->
<transactionManager></transactionManager><!-- 事务管理器 -->
<dataSource></dataSource><!-- 数据源 -->
</environment>
</environments>
<databaseIdProvider></databaseIdProvider><!-- 数据库厂商标识 -->
<mappers></mappers><!-- 映射器 -->
可以看到configuration内的全部顶层节点只有9个,下面我们就一个个来分析一下
properties
下面是一个相对完整的属性配置
<!-- 配置resource-->
<properties resource="xxx/xxx.properties"><!-- 属性 -->
<property name="jdbc.driver" value="db.properties"/>
</properties>
<!-- 配置url-->
<properties url="http://xxxx"><!-- 属性 -->
<property name="jdbc.driver" value="db.properties"/>
</properties>
上面我特意分开写,就是怕引起大家的误解,因为resource和url只允许存在一个,不能同时配置两个属性,可以看到源码中的解析过程:
同时配置了resource和url会抛出异常。
配置了properties属性之后,在xml其他配置文件中可以直接通过${xxx}来读取。
properties配置有三种方式,resource或者url指定,直接配置在子节点properties中,另一种就是上一篇提到的,直接代码中去其他地方读取properties文件,然后传入build方法。
那么这三种方式既然都能配置,假如属性配置重复了,优先级是怎么样的呢?
properties优先级
properties配置的属性如果重复,优先级如下:
- 1、