public interface EnvironmentCapableInterface indicating a component that contains and exposes an
All Spring application contexts are EnvironmentCapable, and the interface is used primarily for performing
instanceofchecks in framework methods that accept BeanFactory instances that may or may not actually be ApplicationContext instances in order to interact with the environment if indeed it is available.
ApplicationContextextends EnvironmentCapable, and thus exposes a
getEnvironment()and narrows the signature to return a
ConfigurableEnvironment. The effect is that an Environment object is 'read-only' until it is being accessed from a ConfigurableApplicationContext, at which point it too may be configured.