MyBatis 配置 properties 标签
1. properties 标签简介
- MyBatis 配置中, 标签用来引入一个属性文件或者定义多个属性,然后在配置文件中使用 ${} 方式进行引用
- 拥有两个属性和一个 子标签
- resource:从本地文件系统载入属性文件
- 如:resource=“database.properties”,将从项目 classpath 路径下面加载 database.properties 属性文件。
- url:可以从互联网加载属性文件,
- 如:url=“http://www.hxstrive.com/data/database.properties” 将从网络位置下载属性文件。
2. properties 内容的引入和配置
2.1 在配置文件中读取属性
<properties resource="database.properties"/>
2.2 通过 propertie 传递
<properties>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_test?useUnicode=true&characterEncoding=UTF8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>
2.3 配置文件和通过 propertie 传递
注意:database.properties 文件里边将没有再设置username和password的属性相关的内容
<properties resource="database.properties">
<property name="username" value="root"/>
<property name="password" value="123456"/>
</properties>
3. properties 内容的消费
这里主要是对properties 引入的值的消费
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
4. 在SqlSessionBuilder.build() 方法传递属性
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, props);
// 或
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment, props);
5. 三种方法的加载顺序
在 properties 元素体内指定的属性首先被读取,就是说:通过 propertie 传递
从类路径下资源或 properties 元素的 url 属性中加载的属性第二被读取,它会覆盖已经存在的完全一样的属性。就是说:在配置文件中读取属性
作为方法参数传递的属性最后被读取,它也会覆盖任一已经存在的完全一样的属性,这些属性可能是从 properties 元素体内和资源/url 属性中加载的。就是说:在SqlSessionBuilder.build() 方法传递属性