diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java index 87d237bc23..1604d4b364 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java @@ -543,25 +543,24 @@ public final class ConfigurationPropertyName implements Comparable buildDefaultToString(); - case SYSTEM_ENVIRONMENT -> - buildSimpleToString('_', (i) -> getElement(i, Form.UNIFORM).toUpperCase(Locale.ENGLISH)); - case LEGACY_SYSTEM_ENVIRONMENT -> buildSimpleToString('_', - (i) -> getElement(i, Form.ORIGINAL).replace('-', '_').toUpperCase(Locale.ENGLISH)); + case SYSTEM_ENVIRONMENT -> buildSimpleToString('_', (i) -> getElement(i, Form.UNIFORM)); + case LEGACY_SYSTEM_ENVIRONMENT -> + buildSimpleToString('_', (i) -> getElement(i, Form.ORIGINAL).replace('-', '_')); }; } diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java index 7065a72a95..3cdd55eeef 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java @@ -16,6 +16,7 @@ package org.springframework.boot.context.properties.source; +import java.util.Locale; import java.util.Map; import java.util.Random; @@ -109,7 +110,8 @@ class SpringConfigurationPropertySource implements ConfigurationPropertySource { } Object getSystemEnvironmentProperty(Map systemEnvironment, String name) { - return systemEnvironment.get(name); + Object value = systemEnvironment.get(name); + return (value != null) ? value : systemEnvironment.get(name.toLowerCase(Locale.ROOT)); } @Override diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java index 2a74e21307..b2e301dd59 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java @@ -16,8 +16,6 @@ package org.springframework.boot.context.properties.source; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.function.BiPredicate; @@ -42,12 +40,10 @@ final class SystemEnvironmentPropertyMapper implements PropertyMapper { @Override public List map(ConfigurationPropertyName configurationPropertyName) { - String name = configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT); - String legacyName = configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT); - if (name.equals(legacyName)) { - return Collections.singletonList(name); - } - return Arrays.asList(name, legacyName); + return List.of(configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, true), + configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, true), + configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, false), + configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, false)); } @Override