今天發現一個問題,在mybatis中引入的外部屬性文件和properties中配置的屬性誰的優先級高?於是我做了測試。
首先在src目錄下新建了一個jdbc.properties屬性文件,配置如下:
username=root
password=123
mybatis核心配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties">
<property name="user" value="root"/>
<property name="password" value="1234"/>
</properties>
<typeAliases>
<package name="com.zmx.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///heima"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zmx/mapper/UserMapper.xml" />
</mappers>
</configuration>
真實的數據庫用戶名和密碼:
username=123
password=root
注意這裏核心配置文件中的properties中配置的是錯誤的信息,保存經過測試之後的結果是正確的。但是反過來,如果properties中配置的信息時正確的,外部屬性文件中的配置是錯誤的話,測試就錯誤了。
最後,得出結論: