Package org.springframework.core.env

# Class StandardEnvironment

java.lang.Object
org.springframework.core.env.AbstractEnvironment
org.springframework.core.env.StandardEnvironment

All Implemented Interfaces:
  `ConfigurableEnvironment`, `ConfigurablePropertyResolver`, `Environment`, `PropertyResolver`

public class StandardEnvironment extends AbstractEnvironment
`Environment` implementation suitable for use in 'standard' (i.e. non-web) applications.

In addition to the usual functions of a `ConfigurableEnvironment` such as property resolution and profile-related operations, this implementation configures two default property sources, to be searched in the following order:

- system properties
- system environment variables

That is, if the key "xyz" is present both in the JVM system properties as well as in the set of environment variables for the current process, the value of key "xyz" from system properties will return from a call to `environment.getProperty("xyz")`. This ordering is chosen by default because system properties are per-JVM, while environment variables may be the same across many JVMs on a given system. Giving system properties precedence allows for overriding of environment variables on a per-JVM basis.

These default property sources may be removed, reordered, or replaced; and additional property sources may be added using the `MutablePropertySources` instance available from `AbstractEnvironment.getPropertySources()`. See `ConfigurableEnvironment` Javadoc for usage examples.

See `SystemEnvironmentPropertySource` javadoc for details on special handling of property names in shell environments (for example, Bash) that disallow period characters in variable names.

Since:
  3.1
Author:
  Chris Beams, Phillip Webb
See Also:
  - `ConfigurableEnvironment`
  - `SystemEnvironmentPropertySource`
  - `org.springframework.web.context.support.StandardServletEnvironment`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME`
System environment property source name: "systemEnvironment".
`static final String`
`SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME`
JVM system properties property source name: "systemProperties".

### Fields inherited from class org.springframework.core.env.AbstractEnvironment

`ACTIVE_PROFILES_PROPERTY_NAME, DEFAULT_PROFILES_PROPERTY_NAME, IGNORE_GETENV_PROPERTY_NAME, logger, RESERVED_DEFAULT_PROFILE_NAME`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`StandardEnvironment()`
Create a new `StandardEnvironment` instance with a default `MutablePropertySources` instance.
`protected`
`StandardEnvironment(MutablePropertySources propertySources)`
Create a new `StandardEnvironment` instance with a specific `MutablePropertySources` instance.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`customizePropertySources(MutablePropertySources propertySources)`
Customize the set of property sources with those appropriate for any standard Java environment: "systemProperties" "systemEnvironment"

### Methods inherited from class org.springframework.core.env.AbstractEnvironment

`acceptsProfiles, acceptsProfiles, addActiveProfile, containsProperty, createPropertyResolver, doGetActiveProfiles, doGetActiveProfilesProperty, doGetDefaultProfiles, doGetDefaultProfilesProperty, getActiveProfiles, getConversionService, getDefaultProfiles, getProperty, getProperty, getProperty, getProperty, getPropertyResolver, getPropertySources, getRequiredProperty, getRequiredProperty, getReservedDefaultProfiles, getSystemEnvironment, getSystemProperties, isProfileActive, merge, resolvePlaceholders, resolveRequiredPlaceholders, setActiveProfiles, setConversionService, setDefaultProfiles, setEscapeCharacter, setIgnoreUnresolvableNestedPlaceholders, setPlaceholderPrefix, setPlaceholderSuffix, setRequiredProperties, setValueSeparator, suppressGetenvAccess, toString, validateProfile, validateRequiredProperties`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.core.env.Environment

`matchesProfiles`

## Field Details

### SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME

public static final String SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME
System environment property source name: "systemEnvironment".

See Also:
  - Constant Field Values

### SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME

public static final String SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME
JVM system properties property source name: "systemProperties".

See Also:
  - Constant Field Values

## Constructor Details

### StandardEnvironment

public StandardEnvironment()
Create a new `StandardEnvironment` instance with a default `MutablePropertySources` instance.

### StandardEnvironment

protected StandardEnvironment(MutablePropertySources propertySources)
Create a new `StandardEnvironment` instance with a specific `MutablePropertySources` instance.

Parameters:
  `propertySources` - property sources to use
Since:
  5.3.4

## Method Details

### customizePropertySources

protected void customizePropertySources(MutablePropertySources propertySources)
Customize the set of property sources with those appropriate for any standard Java environment:

- "systemProperties"
- "systemEnvironment"

Properties present in "systemProperties" will take precedence over those in "systemEnvironment".

Overrides:
  `customizePropertySources` in class `AbstractEnvironment`
See Also:
  - `AbstractEnvironment.customizePropertySources(MutablePropertySources)`
  - `AbstractEnvironment.getSystemProperties()`
  - `AbstractEnvironment.getSystemEnvironment()`