org.springframework.context
Interface ApplicationContext
- All Superinterfaces:
- ApplicationEventPublisher, BeanFactory, EnvironmentCapable, 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 EnvironmentCapable, 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
getId
java.lang.String getId()
- Return the unique id of this application context.
- Returns:
- the unique id of the context, or
null
if none
getDisplayName
java.lang.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 java.lang.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:
java.lang.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()