Interface Environment
- All Superinterfaces:
- PropertyResolver
- All Known Subinterfaces:
- ConfigurableEnvironment,- ConfigurableWebEnvironment
- All Known Implementing Classes:
- AbstractEnvironment,- MockEnvironment,- StandardEnvironment,- StandardServletEnvironment
PropertyResolver superinterface.
 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 via 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 or @Inject the
 Environment in order to query profile state or resolve properties directly.
 
In most cases, however, application-level beans should not need to interact with the
 Environment directly but instead may request to have ${...} property
 values replaced by a property placeholder configurer such as
 PropertySourcesPlaceholderConfigurer, which itself is EnvironmentAware and
 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
 ConfigurableEnvironment Javadoc for usage examples demonstrating manipulation
 of property sources prior to application context refresh().
- Since:
- 3.1
- Author:
- Chris Beams, Phillip Webb, Sam Brannen
- See Also:
- 
- PropertyResolver
- EnvironmentCapable
- ConfigurableEnvironment
- AbstractEnvironment
- StandardEnvironment
- EnvironmentAware
- ConfigurableApplicationContext.getEnvironment()
- ConfigurableApplicationContext.setEnvironment(org.springframework.core.env.ConfigurableEnvironment)
- AbstractApplicationContext.createEnvironment()
 
- 
Method SummaryModifier and TypeMethodDescriptionbooleanacceptsProfiles(String... profiles) Deprecated.booleanacceptsProfiles(Profiles profiles) Determine whether the givenProfilespredicate matches the active profiles — or in the case of no explicit active profiles, whether the givenProfilespredicate matches the default profiles.String[]Return the set of profiles explicitly made active for this environment.String[]Return the set of profiles to be active by default when no active profiles have been set explicitly.default booleanmatchesProfiles(String... profileExpressions) Determine whether one of the given profile expressions matches the active profiles — or in the case of no explicit active profiles, whether one of the given profile expressions matches the default profiles.Methods inherited from interface org.springframework.core.env.PropertyResolvercontainsProperty, getProperty, getProperty, getProperty, getProperty, getRequiredProperty, getRequiredProperty, resolvePlaceholders, resolveRequiredPlaceholders
- 
Method Details- 
getActiveProfilesString[] getActiveProfiles()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, for example based on deployment environment. Profiles can be activated by setting "spring.profiles.active" as a system property or by callingConfigurableEnvironment.setActiveProfiles(String...).If no profiles have explicitly been specified as active, then any default profiles will automatically be activated. 
- 
getDefaultProfilesString[] getDefaultProfiles()Return the set of profiles to be active by default when no active profiles have been set explicitly.
- 
matchesProfilesDetermine whether one of the given profile expressions matches the active profiles — or in the case of no explicit active profiles, whether one of the given profile expressions matches the default profiles.Profile expressions allow for complex, boolean profile logic to be expressed — for example "p1 & p2","(p1 & p2) | p3", etc. SeeProfiles.of(String...)for details on the supported expression syntax.This method is a convenient shortcut for env.acceptsProfiles(Profiles.of(profileExpressions)).- Since:
- 5.3.28
- See Also:
 
- 
acceptsProfilesDeprecated.as of 5.1 in favor ofacceptsProfiles(Profiles)ormatchesProfiles(String...)Determine 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.If a profile begins with '!' the logic is inverted, meaning this method will return trueif the given profile is not active. For example,env.acceptsProfiles("p1", "!p2")will returntrueif profile 'p1' is active or 'p2' is not active.- Throws:
- IllegalArgumentException- if called with a- nullarray, an empty array, zero arguments or if any profile is- null, empty, or whitespace only
- See Also:
 
- 
acceptsProfilesDetermine whether the givenProfilespredicate matches the active profiles — or in the case of no explicit active profiles, whether the givenProfilespredicate matches the default profiles.If you wish provide profile expressions directly as strings, use matchesProfiles(String...)instead.- Since:
- 5.1
- See Also:
 
 
- 
acceptsProfiles(Profiles)ormatchesProfiles(String...)