|
||||||||||
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
AbstractApplicationContext.refresh()
before any other initialization work.
A subclass will either create a new bean factory and hold a reference to it, or return a single BeanFactory 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 failedpublic final ConfigurableListableBeanFactory getBeanFactory()
AbstractApplicationContext
Note: Subclasses should check whether the context is still active before returning the internal bean factory. The internal factory should generally be considered unavailable once the context has been closed.
getBeanFactory
in interface ConfigurableApplicationContext
getBeanFactory
in class AbstractApplicationContext
null
)AbstractApplicationContext.refreshBeanFactory()
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 |