java.lang.Object | |||
↳ | org.springframework.core.io.DefaultResourceLoader | ||
↳ | org.springframework.context.support.AbstractApplicationContext | ||
↳ | org.springframework.context.support.AbstractRefreshableApplicationContext |
![]() |
![]() |
Base class for ApplicationContext
implementations which are supposed to support multiple calls to refresh()
,
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(DefaultListableBeanFactory)
,
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;
AnnotationConfigApplicationContext
supports @Configuration
-annotated classes as a source of bean definitions.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a new AbstractRefreshableApplicationContext with no parent.
| |||||||||||
Create a new AbstractRefreshableApplicationContext with the given parent context.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Subclasses must return their internal bean factory here.
| |||||||||||
Set whether it should be allowed to override bean definitions by registering
a different definition with the same name, automatically replacing the former.
| |||||||||||
Set whether to allow circular references between beans - and automatically
try to resolve them.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Cancel this context's refresh attempt, resetting the
active flag
after an exception got thrown. | |||||||||||
Subclasses must implement this method to release their internal bean factory.
| |||||||||||
Create an internal bean factory for this context.
| |||||||||||
Customize the internal bean factory used by this context.
| |||||||||||
Determine whether this context currently holds a bean factory,
i.e.
| |||||||||||
Load bean definitions into the given bean factory, typically through
delegating to one or more bean definition readers.
| |||||||||||
This implementation performs an actual refresh of this context's underlying
bean factory, shutting down the previous bean factory (if any) and
initializing a fresh bean factory for the next phase of the context's lifecycle.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Create a new AbstractRefreshableApplicationContext with no parent.
Create a new AbstractRefreshableApplicationContext with the given parent context.
parent | the parent context |
---|
Subclasses must return their internal bean factory here. They should implement the lookup efficiently, so that it can be called repeatedly without a performance penalty.
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.
null
)Set whether it should be allowed to override bean definitions by registering a different definition with the same name, automatically replacing the former. If not, an exception will be thrown. Default is "true".
Set whether to allow circular references between beans - and automatically try to resolve them.
Default is "true". Turn this off to throw an exception when encountering a circular reference, disallowing them completely.
Cancel this context's refresh attempt, resetting the active
flag
after an exception got thrown.
ex | the exception that led to the cancellation |
---|
Subclasses must implement this method to release their internal bean factory.
This method gets invoked by close()
after all other shutdown work.
Should never throw an exception but rather log shutdown failures.
Create an internal bean factory for this context.
Called for each refresh()
attempt.
The default implementation creates a
DefaultListableBeanFactory
with the internal bean factory
of this
context's parent as parent bean factory. Can be overridden in subclasses,
for example to customize DefaultListableBeanFactory's settings.
Customize the internal bean factory used by this context.
Called for each refresh()
attempt.
The default implementation applies this context's
"allowBeanDefinitionOverriding"
and "allowCircularReferences"
settings,
if specified. Can be overridden in subclasses to customize any of
DefaultListableBeanFactory
's settings.
beanFactory | the newly created bean factory for this context |
---|
Determine whether this context currently holds a bean factory, i.e. has been refreshed at least once and not been closed yet.
Load bean definitions into the given bean factory, typically through delegating to one or more bean definition readers.
beanFactory | the bean factory to load bean definitions into |
---|
BeansException | if parsing of the bean definitions failed |
---|---|
IOException | if loading of bean definition files failed |
This implementation performs an actual refresh of this context's underlying bean factory, shutting down the previous bean factory (if any) and initializing a fresh bean factory for the next phase of the context's lifecycle.
BeansException |
---|