|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.core.io.DefaultResourceLoader org.springframework.context.support.AbstractApplicationContext org.springframework.context.support.AbstractRefreshableApplicationContext
public abstract class AbstractRefreshableApplicationContext
Base class for ApplicationContext implementations that are supposed to support multiple refreshs, creating a new internal bean factory instance every time. Typically (but not necessarily), such a context will be driven by a set of config locations to load bean definitions from.
The only method to be implemented by subclasses is loadBeanDefinitions
,
which gets invoked on each refresh. A concrete implementation is supposed to load
bean definitions into the given DefaultListableBeanFactory, typically delegating
to one or more specific bean definition readers.
Note that there is a similar base class for WebApplicationContexts. AbstractRefreshableWebApplicationContext provides the same subclassing strategy, but additionally pre-implements all context functionality for web environments. There is also a pre-defined way to receive config locations for a web context.
Concrete standalone subclasses of this base class, reading in a specific bean definition format, are ClassPathXmlApplicationContext and FileSystemXmlApplicationContext, which both derive from the common AbstractXmlApplicationContext base class.
loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
,
DefaultListableBeanFactory
,
PropertiesBeanDefinitionReader
,
XmlBeanDefinitionReader
,
AbstractRefreshableWebApplicationContext
,
AbstractXmlApplicationContext
,
ClassPathXmlApplicationContext
,
FileSystemXmlApplicationContext
Field Summary |
---|
Fields inherited from class org.springframework.context.support.AbstractApplicationContext |
---|
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME |
Fields inherited from interface org.springframework.beans.factory.BeanFactory |
---|
FACTORY_BEAN_PREFIX |
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, CLASSPATH_URL_PREFIX |
Constructor Summary | |
---|---|
AbstractRefreshableApplicationContext()
Create a new AbstractRefreshableApplicationContext with no parent. |
|
AbstractRefreshableApplicationContext(ApplicationContext parent)
Create a new AbstractRefreshableApplicationContext with the given parent context. |
Method Summary | |
---|---|
protected DefaultListableBeanFactory |
createBeanFactory()
Create the bean factory for this context. |
ConfigurableListableBeanFactory |
getBeanFactory()
Subclasses must return their internal bean factory here. |
protected abstract void |
loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
Load bean definitions into the given bean factory, typically through delegating to one or more bean definition readers. |
protected void |
refreshBeanFactory()
Subclasses must implement this method to perform the actual configuration load. |
Methods inherited from class org.springframework.core.io.DefaultResourceLoader |
---|
getClassLoader, getResource, getResourceByPath, setClassLoader |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.springframework.core.io.ResourceLoader |
---|
getResource |
Constructor Detail |
---|
public AbstractRefreshableApplicationContext()
public AbstractRefreshableApplicationContext(ApplicationContext parent)
parent
- the parent contextMethod Detail |
---|
protected final void refreshBeanFactory() throws BeansException
AbstractApplicationContext
A subclass will either create a new bean factory and hold a reference to it, or return a single bean factory instance that it holds. In the latter case, it will usually throw an IllegalStateException if refreshing the context more than once.
refreshBeanFactory
in class AbstractApplicationContext
BeansException
- if initialization of the bean factory failedAbstractApplicationContext.refresh()
public final ConfigurableListableBeanFactory getBeanFactory()
AbstractApplicationContext
getBeanFactory
in interface ConfigurableApplicationContext
getBeanFactory
in class AbstractApplicationContext
AbstractApplicationContext.refresh()
protected DefaultListableBeanFactory createBeanFactory()
Default implementation creates a DefaultListableBeanFactory with the internal bean factory of this context's parent as parent bean factory.
Can be overridden in subclasses.
DefaultListableBeanFactory
,
AbstractApplicationContext.getInternalParentBeanFactory()
protected abstract void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws IOException, BeansException
beanFactory
- the bean factory to load bean definitions into
IOException
- if loading of bean definition files failed
BeansException
- if parsing of the bean definitions failedPropertiesBeanDefinitionReader
,
XmlBeanDefinitionReader
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |