Spring MVC属性文件中属性值含#被识别为注释该如何解决?
Spring MVC properties配置#号被识别为注释的解决方法
.properties文件默认解析规则中,行首#会被判定为注释标记,因此开头带#的密码会被直接忽略,无法正常读取,可通过以下方法解决:
- 方法1:用引号包裹完整属性值
用单引号或双引号把密码整体包裹即可,修改后配置如下:
如果密码本身包含单引号,可改用双引号包裹,或对引号内的同类型引号做转义处理。database.url=jdbc:mysql://11.11.0.141:3307/XXXXX_HDS_SHHD database.user=Dheeraj1 database.password='#csd#@12342@ghba' - 方法2:转义#字符
在每一个#前添加反斜杠\转义,转义后#会被识别为普通字符,修改后配置如下:database.url=jdbc:mysql://11.11.0.141:3307/XXXXX_HDS_SHHD database.user=Dheeraj1 database.password=\#csd\#@12342@ghba - 方法3:自定义全局注释标识(不推荐)
若项目存在大量首字符为#的属性值,可自行配置PropertySourcesPlaceholderConfigurer的注释字符,将默认的#替换为其他低频使用的符号。该改动会影响所有属性文件的解析规则,容易引发其他配置异常,非必要不建议使用。
内容的提问来源于stack exchange,提问作者Dheeraj Singh
相关产品推荐
相关产品推荐

