环境变量参数配置导致application.properties配置的参数失效问题

当SpringBoot启动时,初始化dataSource配置时,它会从环境变量和`application.properties`中读取相关参数。如果环境中存在如`SPRING_DATASOURCE_*`变量,它们将优先于`application.properties`中的相同配置,可能导致properties文件内的设置失效。
摘要由CSDN通过智能技术生成

springboot 启动初始化时获取dataSource相关参数时,会从application.properties和环境变量中获取有关键字spring和datasource的所有变量
例如环境变量有

SPRING_DATASOURCE_URL
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD

application.properties配置文件下列参数:

spring.datasource.url
spring.datasource.username
spring.datasource.password

在源码org.springframework.boot.bind.RelaxedDataBinder.class中解析这些参数时,会对参数名字进行.或者下划线_进行分割,所以会优先加载了环境变量中的参数配置,导致application.properties中配置失效

private MutablePropertyValues getPropertyValuesForNamePrefix(
            MutablePropertyValues propertyValues) {
        if (!StringUtils.hasText(this.namePrefix) && !
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值