SpringBoot配置文件中系统环境变量存在特殊字符的处理方式
作者:非衣鲲化
这篇文章主要介绍了SpringBoot配置文件中系统环境变量存在特殊字符的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
配置文件中系统环境变量存在特殊字符的处理
SpringBoot的配置文件中使用系统环境变量作为外部配置的时候,如果出现特殊字符,比如Mysql密码等,只需要在系统环境变量中添加反斜杠(\)即可,不需要例会env/echo命令打印的环境变量,
例如
spring: cloud: service-registry: auto-registration: enabled: false jpa: open-in-view: true show-sql: false datasource: url: jdbc:mysql://**** username: abc password: ${PASSWORD:abc}
环境变量${PASSWORD}含有特殊字符,PASSWORD=abc#98rrE,只需在#号前加反斜杠(\)即可。
$ export PASSWORD=abc\#98rrE
虽然env/echo命令打印出来的依然看不到反斜杠(\),但是SpringBoot中已经生效。
SpringBoot会将整串环境(PASSWORD=abc\#98rrE)读进内存进行处理。
$ export PASSWORD=abc\#98rrE $ echo ${PASSWORD} $ abc#98rrE
yml配置文件的处理特殊字符
当我们使用yml配置文件时,有时候需要配置一些特殊字符会有问题,如:
解决办法
增加单引号引入需要配置的内容:
问题解决。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。