spring中jdbc.properties文件中的属性为什么要加前缀
原文章参考:https://blog.csdn.net/Panda_Parker/article/details/133936314?spm=1001.2014.3001.5506
问题描述
如上图,在使用jdbc.properties文件时,时这样写的,如果这样写,会报错,简单描述问题为:如果属性文件中,配置的是上图所使用的属性名,那么${username}获取的是我计算机的名字,而不是root
原因
系统属性的优先级比我们属性文件中的高,替换了我们的username=root。
解决
解决1:换一个名称,例如不叫username,叫jdbc.username。
解决2:使用system-properties-mode="NEVER"属性表示不使用系统属性。
<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>
加载properties文件写法
- 不加载系统属性
<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>
- 加载多个properties文件
<context:property-placeholder location="jdbc.properties,msg.properties"/>
- 加载所有properties文件
<context:property-placeholder location="*.properties"/>
- 加载properties文件标准格式
<context:property-placeholder location="classpath:*.properties"/>