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) && !