public class SystemEnvironmentPropertySource extends MapPropertySource
MapPropertySource designed for use with
system environment variables.
Compensates for constraints in Bash and other shells that do not allow for variables
containing the period character; also allows for uppercase variations on property
names for more idiomatic shell use.
For example, a call to getProperty("foo.bar") will attempt to find a value
for the original property or any 'equivalent' property, returning the first found:
foo.bar - the original namefoo_bar - with underscores for periods (if any)FOO.BAR - original, with upper caseFOO_BAR - with underscores and upper casecontainsProperty(String), which returns
true if any of the above properties are present, otherwise false.
This feature is particularly useful when specifying active or default profiles as environment variables. The following is not allowable under Bash
spring.profiles.active=p1 java -classpath ... MyAppHowever, the following syntax is permitted and is also more conventional.
SPRING_PROFILES_ACTIVE=p1 java -classpath ... MyApp
Enable debug- or trace-level logging for this class (or package) for messages explaining when these 'property name resolutions' occur.
This property source is included by default in StandardEnvironment
and all its subclasses.
StandardEnvironment,
AbstractEnvironment.getSystemEnvironment(),
AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAMEPropertySource.StubPropertySourceEMPTY_NAMES_ARRAY, loggername, source| Constructor and Description |
|---|
SystemEnvironmentPropertySource(String name,
Map<String,Object> source)
Create a new
SystemEnvironmentPropertySource with the given name and
delegating to the given MapPropertySource. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsProperty(String name)
Return true if a property with the given name or any underscore/uppercase variant
thereof exists in this property source.
|
Object |
getProperty(String name)
Return the value associated with the given name,
null if not found. |
getPropertyNamespublic boolean containsProperty(String name)
containsProperty in class EnumerablePropertySource<Map<String,Object>>name - the property to findpublic Object getProperty(String name)
null if not found.
This implementation returns true if a property with the given name or
any underscore/uppercase variant thereof exists in this property source.
getProperty in class MapPropertySourcename - the property to findPropertyResolver.getRequiredProperty(String)