org.springframework.context
Interface ConfigurableApplicationContext

All Superinterfaces:
ApplicationContext, BeanFactory, HierarchicalBeanFactory, ListableBeanFactory, MessageSource, ResourceLoader
All Known Subinterfaces:
ConfigurableWebApplicationContext
All Known Implementing Classes:
AbstractApplicationContext, StaticWebApplicationContext, XmlWebApplicationContext

public interface ConfigurableApplicationContext
extends ApplicationContext

SPI interface to be implemented by most if not all application contexts. Provides means to configure an application context in addition to the application context client methods in the ApplicationContext interface.

Configuration and lifecycle methods are encapsulated here to avoid making them obvious to ApplicationContext client code.

Since:
03.11.2003
Author:
Juergen Hoeller

Field Summary
 
Fields inherited from interface org.springframework.core.io.ResourceLoader
CLASSPATH_URL_PREFIX
 
Method Summary
 void addBeanFactoryPostProcessor(BeanFactoryPostProcessor beanFactoryPostProcessor)
          Add a new BeanFactoryPostProcessor that will get applied to the internal bean factory of this application context on refresh, before any of the bean definitions get evaluated.
 void close()
          Close this application context, releasing all resources and locks that the implementation might hold.
 ConfigurableListableBeanFactory getBeanFactory()
          Return the internal bean factory of this application context.
 void refresh()
          Load or refresh the persistent representation of the configuration, which might an XML file, properties file, or relational database schema.
 void setParent(ApplicationContext parent)
          Set the parent of this application context.
 
Methods inherited from interface org.springframework.context.ApplicationContext
getDisplayName, getParent, getStartupDate, publishEvent
 
Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames, getBeanDefinitionNames, getBeansOfType
 
Methods inherited from interface org.springframework.beans.factory.BeanFactory
containsBean, getAliases, getBean, getBean, isSingleton
 
Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
getParentBeanFactory
 
Methods inherited from interface org.springframework.context.MessageSource
getMessage, getMessage, getMessage
 
Methods inherited from interface org.springframework.core.io.ResourceLoader
getResource
 

Method Detail

setParent

public void setParent(ApplicationContext parent)
Set the parent of this application context.

Note that the parent shouldn't be changed: It should only be set outside a constructor if it isn't available when an object of this class is created, for example in case of WebApplicationContext setup.

Parameters:
parent - the parent context
See Also:
ConfigurableWebApplicationContext

addBeanFactoryPostProcessor

public void addBeanFactoryPostProcessor(BeanFactoryPostProcessor beanFactoryPostProcessor)
Add a new BeanFactoryPostProcessor that will get applied to the internal bean factory of this application context on refresh, before any of the bean definitions get evaluated. To be invoked during context configuration.

Parameters:
beanFactoryPostProcessor - the factory processor to register

refresh

public void refresh()
             throws BeansException
Load or refresh the persistent representation of the configuration, which might an XML file, properties file, or relational database schema.

Throws:
ApplicationContextException - if the config cannot be loaded
BeansException - if the bean factory could not be initialized

getBeanFactory

public ConfigurableListableBeanFactory getBeanFactory()
Return the internal bean factory of this application context. Can be used to access specific functionality of the factory.

Note that this is just guaranteed to return a non-null instance after the context has been refreshed at least once.

Note: Do not use this to post-process the bean factory; singletons will already have been instantiated before. Use a BeanFactoryPostProcessor to intercept the bean factory setup process before beans get touched.

See Also:
refresh(), addBeanFactoryPostProcessor(org.springframework.beans.factory.config.BeanFactoryPostProcessor)

close

public void close()
           throws ApplicationContextException
Close this application context, releasing all resources and locks that the implementation might hold. This includes disposing all cached singleton beans.

Note: Does not invoke close on a parent context.

Throws:
ApplicationContextException - if there were fatal errors


Copyright (C) 2003-2004 The Spring Framework Project.