public interface Environment extends PropertyResolver
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 have to 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
ConfigurableEnvironment
Javadoc for usage examples demonstrating manipulation
of property sources prior to application context refresh()
.
PropertyResolver
,
EnvironmentCapable
,
ConfigurableEnvironment
,
AbstractEnvironment
,
StandardEnvironment
,
EnvironmentAware
,
ConfigurableApplicationContext.getEnvironment()
,
ConfigurableApplicationContext.setEnvironment(org.springframework.core.env.ConfigurableEnvironment)
,
AbstractApplicationContext.createEnvironment()
Modifier and Type | Method and Description |
---|---|
boolean |
acceptsProfiles(Profiles profiles)
Determine whether the given
Profiles predicate matches the
active profiles — or in the case
of no explicit active profiles, whether the given Profiles predicate
matches the default profiles. |
boolean |
acceptsProfiles(String... profiles)
Deprecated.
as of 5.1 in favor of
acceptsProfiles(Profiles) or
matchesProfiles(String...) |
String[] |
getActiveProfiles()
Return the set of profiles explicitly made active for this environment.
|
String[] |
getDefaultProfiles()
Return the set of profiles to be active by default when no active profiles have
been set explicitly.
|
default boolean |
matchesProfiles(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.
|
containsProperty, getProperty, getProperty, getProperty, getProperty, getRequiredProperty, getRequiredProperty, resolvePlaceholders, resolveRequiredPlaceholders
String[] getActiveProfiles()
ConfigurableEnvironment.setActiveProfiles(String...)
.
If no profiles have explicitly been specified as active, then any default profiles will automatically be activated.
String[] getDefaultProfiles()
default boolean matchesProfiles(String... profileExpressions)
Profile expressions allow for complex, boolean profile logic to be
expressed — for example "p1 & p2"
, "(p1 & p2) | p3"
,
etc. See Profiles.of(String...)
for details on the supported
expression syntax.
This method is a convenient shortcut for
env.acceptsProfiles(Profiles.of(profileExpressions))
.
Profiles.of(String...)
,
acceptsProfiles(Profiles)
@Deprecated boolean acceptsProfiles(String... profiles)
acceptsProfiles(Profiles)
or
matchesProfiles(String...)
If a profile begins with '!' the logic is inverted, meaning this method
will return true
if the given profile is not active. For
example, env.acceptsProfiles("p1", "!p2")
will return true
if profile 'p1' is active or 'p2' is not active.
IllegalArgumentException
- if called with a null
array, an
empty array, zero arguments or if any profile is null
, empty, or
whitespace onlygetActiveProfiles()
,
getDefaultProfiles()
,
matchesProfiles(String...)
,
acceptsProfiles(Profiles)
boolean acceptsProfiles(Profiles profiles)
Profiles
predicate matches the
active profiles — or in the case
of no explicit active profiles, whether the given Profiles
predicate
matches the default profiles.
If you wish provide profile expressions directly as strings, use
matchesProfiles(String...)
instead.
matchesProfiles(String...)
,
Profiles.of(String...)