Interface representing the environment in which the current application is running.
Models two key aspects of the application environment: profiles and
properties. Methods related to property access are exposed via the
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().

acceptsProfiles

Return 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,
i.e. the method will return true if the given profile is not active.
For example,