Spring Boot如何通过OS环境变量读取spring.datasource.driver-class-name配置
Spring带短横线配置项的环境变量注入方案
推荐方案:利用Spring宽松绑定规则
Spring Boot原生支持**宽松绑定(Relaxed Binding)**特性,可自动适配不同命名格式的配置来源,是官方推荐的兼容方案:
- 规则:将配置名中的
.替换为下划线_,短横线-也替换为下划线_,所有字母转为大写,即可完全规避shell环境变量不允许短横线的限制。
对于spring.datasource.driver-class-name配置项,对应的正确环境变量写法如下:
export SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver
注意:你之前的示例中存在拼写错误,
SPRING_DARASOURCE_*应为SPRING_DATASOURCE_*,不要漏写字母T。
备选方案:强制使用带短横线的变量名
如果特殊场景下需要保留和配置名完全一致的短横线命名,可以用单引号将完整变量名包裹,符合bash等shell的语法要求:
export 'SPRING_DATASOURCE_DRIVER-CLASS-NAME'=org.mariadb.jdbc.Driver
注意:该方式兼容性较差,部分运行环境、工具无法识别带特殊字符的环境变量,非必要不推荐使用。
内容的提问来源于stack exchange,提问作者JIN
相关产品推荐
相关产品推荐

