今天发现一个问题,在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中配置的信息时正确的,外部属性文件中的配置是错误的话,测试就错误了。
最后,得出结论: