public interface

Environment

implements PropertyResolver
org.springframework.core.env.Environment
Known Indirect Subclasses

Class Overview

Interface representing the environment in which the current application is running. Models two key aspects of the application environment:

  1. profiles
  2. properties
A profile is a named, logical group of bean definitions to be registered with the container only if the given profile is active. Beans may be assigned to a profile whether defined in XML or annotations; see the spring-beans 3.1 schema or the @Profile annotation for syntax details. The role of the Environment object with relation to profiles is in determining which profiles (if any) are currently active, and which profiles (if any) should be active by default.

Properties play an important role in almost all applications, and may originate from a variety of sources: properties files, JVM system properties, system environment variables, JNDI, servlet context parameters, ad-hoc Properties objects, Maps, and so on. The role of the environment object with relation to properties is to provide the user with a convenient service interface for configuring property sources and resolving properties from them.

Beans managed within an ApplicationContext may register to be EnvironmentAware, where they can query profile state or resolve properties directly.

More commonly, beans will not interact with the Environment directly, but will have ${...} property values replaced by a property placeholder configurer such as PropertySourcesPlaceholderConfigurer, which itself is EnvironmentAware, and as of Spring 3.1 is registered by default when using <context:property-placeholder/>.

Configuration of the environment object must be done through the ConfigurableEnvironment interface, returned from all AbstractApplicationContext subclass getEnvironment() methods. See DefaultEnvironment for several examples of using the ConfigurableEnvironment interface to manipulate property sources prior to application context refresh().

Summary

Public Methods
abstract boolean acceptsProfiles(String... profiles)
abstract String[] getActiveProfiles()
Return the set of profiles explicitly made active for this environment.
abstract String[] getDefaultProfiles()
Return the set of profiles to be active by default when no active profiles have been set explicitly.
[Expand]
Inherited Methods
From interface org.springframework.core.env.PropertyResolver

Public Methods

public abstract boolean acceptsProfiles (String... profiles)

Also: SpringCore

Returns
  • whether one or more of the given profiles is active, or in the case of no explicit active profiles, whether one or more of the given profiles is included in the set of default profiles
Throws
IllegalArgumentException unless at least one profile has been specified
IllegalArgumentException if any profile is the empty string or consists only of whitespace

public abstract String[] getActiveProfiles ()

Also: SpringCore

Return the set of profiles explicitly made active for this environment. Profiles are used for creating logical groupings of bean definitions to be registered conditionally, often based on deployment environment. Profiles can be activated by setting "spring.profiles.active" as a system property or by calling setActiveProfiles(String).

If no profiles have explicitly been specified as active, then any 'default' profiles will implicitly be considered active.

public abstract String[] getDefaultProfiles ()

Also: SpringCore

Return the set of profiles to be active by default when no active profiles have been set explicitly.