类 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 ofMapPropertySource
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 and/or hyphen 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 case
The same applies for calls to
containsProperty(String)
, which returnstrue
if any of the above properties are present, otherwisefalse
.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.- 从以下版本开始:
- 3.1
- 作者:
- Chris Beams, Juergen Hoeller
- 另请参阅:
StandardEnvironment
,AbstractEnvironment.getSystemEnvironment()
,AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME
嵌套类概要
从类继承的嵌套类/接口 org.springframework.core.env.PropertySource
PropertySource.StubPropertySource
字段概要
从类继承的字段 org.springframework.core.env.PropertySource
logger, name, source
构造器概要
构造器 构造器 说明 SystemEnvironmentPropertySource(String name, Map<String,Object> source)
Create a newSystemEnvironmentPropertySource
with the given name and delegating to the givenMapPropertySource
.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 boolean
containsProperty(String name)
Returntrue
if a property with the given name or any underscore/uppercase variant thereof exists in this property source.Object
getProperty(String name)
This implementation returnstrue
if a property with the given name or any underscore/uppercase variant thereof exists in this property source.protected boolean
isSecurityManagerPresent()
从类继承的方法 org.springframework.core.env.MapPropertySource
getPropertyNames
构造器详细资料
SystemEnvironmentPropertySource
public SystemEnvironmentPropertySource(String name, Map<String,Object> source)
Create a newSystemEnvironmentPropertySource
with the given name and delegating to the givenMapPropertySource
.
方法详细资料
containsProperty
public boolean containsProperty(String name)
Returntrue
if a property with the given name or any underscore/uppercase variant thereof exists in this property source.- 覆盖:
containsProperty
在类中MapPropertySource
- 参数:
name
- the name of the property to find
getProperty
public Object getProperty(String name)
This implementation returnstrue
if a property with the given name or any underscore/uppercase variant thereof exists in this property source.- 覆盖:
getProperty
在类中MapPropertySource
- 参数:
name
- the property to find- 另请参阅:
PropertyResolver.getRequiredProperty(String)
isSecurityManagerPresent
protected boolean isSecurityManagerPresent()