org.springframework.core.env
Class SystemEnvironmentPropertySource
java.lang.Object
org.springframework.core.env.PropertySource<T>
org.springframework.core.env.EnumerablePropertySource<Map<String,Object>>
org.springframework.core.env.MapPropertySource
org.springframework.core.env.SystemEnvironmentPropertySource
public class SystemEnvironmentPropertySource
- extends MapPropertySource
Specialization of 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 name
foo_bar - with underscores for periods (if any)
FOO.BAR - original, with upper case
FOO_BAR - with underscores and upper case
The same applies for calls to containsProperty(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 ... MyApp
However, 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.
- Since:
- 3.1
- Author:
- Chris Beams
- See Also:
StandardEnvironment,
AbstractEnvironment.getSystemEnvironment(),
AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME
|
Method Summary |
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. |
SystemEnvironmentPropertySource
public SystemEnvironmentPropertySource(String name,
Map<String,Object> source)
- Create a new
SystemEnvironmentPropertySource with the given name and
delegating to the given MapPropertySource.
containsProperty
public boolean containsProperty(String name)
- Return true if a property with the given name or any underscore/uppercase variant
thereof exists in this property source.
- Overrides:
containsProperty in class EnumerablePropertySource<Map<String,Object>>
- Parameters:
name - the property to find
getProperty
public Object getProperty(String name)
- Return the value associated with the given 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.
- Overrides:
getProperty in class MapPropertySource
- Parameters:
name - the property to find- See Also:
PropertyResolver.getRequiredProperty(String)