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"/>
posted @ 2023-12-29 17:24  fengwan  阅读(28)  评论(0)    收藏  举报