org.springframework.context

## Interface ApplicationContextAware

- All Superinterfaces:
    Aware
  All Known Implementing Classes:
    AbstractAtomFeedView, AbstractCachingViewResolver, AbstractCommandController, AbstractCommandController, AbstractController, AbstractController, AbstractControllerUrlHandlerMapping, AbstractDetectingUrlHandlerMapping, AbstractExcelView, AbstractFeedView, AbstractFormController, AbstractFormController, AbstractHandlerMapping, AbstractHandlerMapping, AbstractHandlerMethodAdapter, AbstractHandlerMethodMapping, AbstractJasperReportsSingleFormatView, AbstractJasperReportsView, AbstractJExcelView, AbstractJUnit38SpringContextTests, AbstractJUnit4SpringContextTests, AbstractMapBasedHandlerMapping, AbstractPdfStamperView, AbstractPdfView, AbstractRssFeedView, AbstractTemplateView, AbstractTemplateViewResolver, AbstractTestNGSpringContextTests, AbstractTransactionalJUnit38SpringContextTests, AbstractTransactionalJUnit4SpringContextTests, AbstractTransactionalTestNGSpringContextTests, AbstractUrlBasedView, AbstractUrlHandlerMapping, AbstractUrlViewController, AbstractView, AbstractWizardFormController, AbstractWizardFormController, AbstractXsltView, AnnotationMethodHandlerAdapter, AnnotationMethodHandlerAdapter, ApplicationObjectSupport, BaseCommandController, BaseCommandController, BeanNameUrlHandlerMapping, BeanNameViewResolver, CancellableFormController, ConfigurableJasperReportsView, ContentNegotiatingViewResolver, ContextLifecycleScheduledTaskRegistrar, ControllerBeanNameHandlerMapping, ControllerClassNameHandlerMapping, DefaultAnnotationHandlerMapping, DefaultAnnotationHandlerMapping, DelegatingWebMvcConfiguration, ExceptionHandlerExceptionResolver, FreeMarkerView, FreeMarkerViewResolver, InternalResourceView, InternalResourceViewResolver, JasperReportsCsvView, JasperReportsHtmlView, JasperReportsMultiFormatView, JasperReportsPdfView, JasperReportsViewResolver, JasperReportsXlsView, JobDetailBean, JobDetailFactoryBean, JstlView, LiveBeansView, LocalValidatorFactoryBean, MappingJackson2JsonView, MappingJacksonJsonView, MarshallingView, MultiActionController, ParameterHandlerMapping, ParameterizableViewController, ParameterizableViewController, PortletApplicationObjectSupport, PortletContentGenerator, PortletModeHandlerMapping, PortletModeParameterHandlerMapping, PortletWrappingController, RedirectView, RequestMappingHandlerAdapter, RequestMappingHandlerMapping, RequestMappingInfoHandlerMapping, ResourceBundleViewResolver, ResourceHttpRequestHandler, ScheduledAnnotationBeanPostProcessor, SchedulerFactoryBean, ServletContextLiveBeansView, ServletForwardingController, ServletWrappingController, SimpleFormController, SimpleFormController, SimpleUrlHandlerMapping, TilesConfigurer, TilesJstlView, TilesView, TilesView, TilesView, TilesViewResolver, TilesViewResolver, UrlBasedViewResolver, UrlFilenameViewController, VelocityLayoutView, VelocityLayoutViewResolver, VelocityToolboxView, VelocityView, VelocityViewResolver, WebApplicationObjectSupport, WebContentGenerator, WebContentInterceptor, WebMvcConfigurationSupport, XmlViewResolver, XsltView, XsltViewResolver

      public interface ApplicationContextAware
      extends Aware

  Interface to be implemented by any object that wishes to be notified of the `ApplicationContext` that it runs in.

  Implementing this interface makes sense for example when an object requires access to a set of collaborating beans. Note that configuration via bean references is preferable to implementing this interface just for bean lookup purposes.

  This interface can also be implemented if an object needs access to file resources, i.e. wants to call `getResource`, wants to publish an application event, or requires access to the MessageSource. However, it is preferable to implement the more specific `ResourceLoaderAware`, `ApplicationEventPublisherAware` or `MessageSourceAware` interface in such a specific scenario.

  Note that file resource dependencies can also be exposed as bean properties of type `Resource`, populated via Strings with automatic type conversion by the bean factory. This removes the need for implementing any callback interface just for the purpose of accessing a specific file resource.

  `ApplicationObjectSupport` is a convenience base class for application objects, implementing this interface.

  For a list of all bean lifecycle methods, see the `BeanFactory javadocs`.

  Author:
    Rod Johnson, Juergen Hoeller, Chris Beams
  See Also:
    `ResourceLoaderAware`, `ApplicationEventPublisherAware`, `MessageSourceAware`, `ApplicationObjectSupport`, `BeanFactoryAware`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `setApplicationContext(ApplicationContext applicationContext)` Set the ApplicationContext that this object runs in.

- - ### Method Detail

    - #### setApplicationContext

          void setApplicationContext(ApplicationContext applicationContext)
                                     throws BeansException

      Set the ApplicationContext that this object runs in. Normally this call will be used to initialize the object.

      Invoked after population of normal bean properties but before an init callback such as `InitializingBean.afterPropertiesSet()` or a custom init-method. Invoked after `ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)`, `ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)` and `MessageSourceAware`, if applicable.

      Parameters:
        `applicationContext` - the ApplicationContext object to be used by this object
      Throws:
        `ApplicationContextException` - in case of context initialization errors
        `BeansException` - if thrown by application context methods
      See Also:
        `BeanInitializationException`