## 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

Direct Known Subclasses:
  StandardPortletEnvironment, StandardServletEnvironment

    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 (e.g. Bash) that disallow period characters in variable names.

Since:
  3.1
Author:
  Chris Beams
See Also:
  `ConfigurableEnvironment`, `SystemEnvironmentPropertySource`, `StandardServletEnvironment`

Field Summary
`static String` `SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME` System environment property source name: "systemEnvironment"
`static 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, logger, RESERVED_DEFAULT_PROFILE_NAME`

Constructor Summary
`StandardEnvironment()`

Method Summary
`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, addActiveProfile, containsProperty, doGetActiveProfiles, doGetDefaultProfiles, getActiveProfiles, getConversionService, getDefaultProfiles, getProperty, getProperty, getProperty, getProperty, getPropertyAsClass, getPropertySources, getRequiredProperty, getRequiredProperty, getReservedDefaultProfiles, getSystemEnvironment, getSystemProperties, isProfileActive, merge, resolvePlaceholders, resolveRequiredPlaceholders, setActiveProfiles, setConversionService, setDefaultProfiles, setPlaceholderPrefix, setPlaceholderSuffix, setRequiredProperties, setValueSeparator, toString, validateProfile, validateRequiredProperties`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### 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 Detail

### StandardEnvironment

    public StandardEnvironment()

Method Detail

### 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()`