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