Possible Duplicate:
BeanFactory vs ApplicationContext
Simple word meaning of Application context and bean factory in spring framework.
While the BeanFactory provides basic functionality for managing and manipulating beans, often in a programmatic way, the ApplicationContext provides extra functionality like MessageSource, Access to resources, Event propagation to beans, Loading of multiple (hierarchical) contexts etc.
One is BeanFactory and the other is Application Context. The application context interface extends BeanFactory to enhance the functionality of BeanFactory. In new Spring versions, BeanFactory is replaced with ApplicationContext. But still, BeanFactory exists for backward compatibility.
We can have multiple application contexts that share a parent-child relationship. A context hierarchy allows multiple child contexts to share beans which reside in the parent context. Each child context can override configuration inherited from the parent context.
BeanFactory
The BeanFactory
is the actual container which instantiates, configures, and manages a number of beans. These beans typically collaborate with one another, and thus have dependencies between themselves. These dependencies are reflected in the configuration data used by the BeanFactory
(although some dependencies may not be visible as configuration data, but rather be a function of programmatic interactions between beans at runtime).
ApplicationContext
While the beans package provides basic functionality for managing and manipulating beans, often in a programmatic way, the context package adds ApplicationContext
, which enhances BeanFactory
functionality in a more framework-oriented style. Many users will use ApplicationContext
in a completely declarative fashion, not even having to create it manually, but instead relying on support classes such as ContextLoader
to automatically start an ApplicationContext as part of the normal startup process of a Java EE web-app. Of course, it is still possible to programmatically create an ApplicationContext.
The basis for the context package is the ApplicationContext
interface, located in the org.springframework.context
package. Deriving from the BeanFactory
interface, it provides all the functionality of BeanFactory
. To allow working in a more framework-oriented fashion, using layering and hierarchical contexts, the context package also provides the following:
MessageSource, providing access to messages in, i18n-style
Access to resources, such as URLs and files
Event propagation to beans implementing the ApplicationListener interface
Loading of multiple (hierarchical) contexts, allowing each to be focused on one particular layer, for example the web layer of an application
As the ApplicationContext
includes all functionality of the BeanFactory
, it is generally recommended that it be used over the BeanFactory
, except for a few limited situations such as perhaps in an applet, where memory consumption might be critical, and a few extra kilobytes might make a difference. The following sections described functionality which ApplicationContext
adds to basic BeanFactory
capabilities.
http://static.springsource.org/spring/docs/1.2.x/reference/beans.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With