## org.springframework.context
Interface ApplicationContext

All Superinterfaces:
  ApplicationEventPublisher, BeanFactory, HierarchicalBeanFactory, ListableBeanFactory, MessageSource, ResourceLoader, ResourcePatternResolver

All Known Subinterfaces:
  ConfigurableApplicationContext, ConfigurablePortletApplicationContext, ConfigurableWebApplicationContext, WebApplicationContext

All Known Implementing Classes:
  AbstractApplicationContext, AbstractRefreshableApplicationContext, AbstractRefreshableConfigApplicationContext, AbstractRefreshablePortletApplicationContext, AbstractRefreshableWebApplicationContext, AbstractXmlApplicationContext, AnnotationConfigApplicationContext, AnnotationConfigWebApplicationContext, ClassPathXmlApplicationContext, FileSystemXmlApplicationContext, GenericApplicationContext, GenericWebApplicationContext, GenericXmlApplicationContext, ResourceAdapterApplicationContext, StaticApplicationContext, StaticPortletApplicationContext, StaticWebApplicationContext, XmlPortletApplicationContext, XmlWebApplicationContext

    public interface ApplicationContext

extends ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver

Central interface to provide configuration for an application. This is read-only while the application is running, but may be reloaded if the implementation supports this.

An ApplicationContext provides:

- Bean factory methods for accessing application components. Inherited from `ListableBeanFactory`.
- The ability to load file resources in a generic fashion. Inherited from the `ResourceLoader` interface.
- The ability to publish events to registered listeners. Inherited from the `ApplicationEventPublisher` interface.
- The ability to resolve messages, supporting internationalization. Inherited from the `MessageSource` interface.
- Inheritance from a parent context. Definitions in a descendant context will always take priority. This means, for example, that a single parent context can be used by an entire web application, while each servlet has its own child context that is independent of that of any other servlet.

In addition to standard `BeanFactory` lifecycle capabilities, ApplicationContext implementations detect and invoke `ApplicationContextAware` beans as well as `ResourceLoaderAware`, `ApplicationEventPublisherAware` and `MessageSourceAware` beans.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `ConfigurableApplicationContext`, `BeanFactory`, `ResourceLoader`

Field Summary

Fields inherited from interface org.springframework.beans.factory.BeanFactory
`FACTORY_BEAN_PREFIX`

Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
`CLASSPATH_ALL_URL_PREFIX`

Fields inherited from interface org.springframework.core.io.ResourceLoader
`CLASSPATH_URL_PREFIX`

Method Summary
`AutowireCapableBeanFactory` `getAutowireCapableBeanFactory()` Expose AutowireCapableBeanFactory functionality for this context.
`String` `getDisplayName()` Return a friendly name for this context.
`String` `getId()` Return the unique id of this application context.
`ApplicationContext` `getParent()` Return the parent context, or `null` if there is no parent and this is the root of the context hierarchy.
`long` `getStartupDate()` Return the timestamp when this context was first loaded.

Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory
`containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation`

Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
`containsLocalBean, getParentBeanFactory`

Methods inherited from interface org.springframework.beans.factory.BeanFactory
`containsBean, getAliases, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch`

Methods inherited from interface org.springframework.context.MessageSource
`getMessage, getMessage, getMessage`

Methods inherited from interface org.springframework.context.ApplicationEventPublisher
`publishEvent`

Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver
`getResources`

Methods inherited from interface org.springframework.core.io.ResourceLoader
`getClassLoader, getResource`

Method Detail

### getId

    String getId()

  Return the unique id of this application context.

  Returns:
    the unique id of the context, or `null` if none

### getDisplayName

    String getDisplayName()

  Return a friendly name for this context.

  Returns:
    a display name for this context (never `null`)

### getStartupDate

    long getStartupDate()

  Return the timestamp when this context was first loaded.

  Returns:
    the timestamp (ms) when this context was first loaded

### getParent

    ApplicationContext getParent()

  Return the parent context, or `null` if there is no parent and this is the root of the context hierarchy.

  Returns:
    the parent context, or `null` if there is no parent

### getAutowireCapableBeanFactory

    AutowireCapableBeanFactory getAutowireCapableBeanFactory()
                                                             throws IllegalStateException

  Expose AutowireCapableBeanFactory functionality for this context.

  This is not typically used by application code, except for the purpose of initializing bean instances that live outside the application context, applying the Spring bean lifecycle (fully or partly) to them.

  Alternatively, the internal BeanFactory exposed by the `ConfigurableApplicationContext` interface offers access to the AutowireCapableBeanFactory interface too. The present method mainly serves as convenient, specific facility on the ApplicationContext interface itself.

  Returns:
    the AutowireCapableBeanFactory for this context
  Throws:
    `IllegalStateException` - if the context does not support the AutowireCapableBeanFactory interface or does not hold an autowire-capable bean factory yet (usually if `refresh()` has never been called)
  See Also:
    `ConfigurableApplicationContext.refresh()`, `ConfigurableApplicationContext.getBeanFactory()`