mybatis核心配置文件中的properties引入的外部屬性文件與內部的property文件的優先級

今天發現一個問題,在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中配置的信息時正確的,外部屬性文件中的配置是錯誤的話,測試就錯誤了。

最後,得出結論:

在 properties 元素體內指定的屬性首先被讀取。 從類路徑下資源或 properties 元素的 url 屬性中加載的屬性第二被讀取,它會覆蓋已經存在的完全一樣的屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章