mybatis核心配置文件中的properties引入的外部属性文件与内部的property文件的优先级

2022-07-08 13:08:31

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

最后,得出结论:

在 properties 元素体内指定的属性首先被读取。 从类路径下资源或 properties 元素的 url 属性中加载的属性第二被读取,它会覆盖已经存在的完全一样的属性。

  • 作者:鑫爵
  • 原文链接:https://blog.csdn.net/qq_37745636/article/details/102527688
    更新时间:2022-07-08 13:08:31