Junior — Middle
What is the difference between using BeanFactory and ApplicationContext in Spring Framework?
sobes.tech AI
Answer from AI
BeanFactory and ApplicationContext are two main container interfaces in the Spring Framework, but they differ in functionality:
-
BeanFactory is a basic container that provides fundamental management of bean lifecycle and their creation on demand (lazy loading). It does not support many advanced features.
-
ApplicationContext extends BeanFactory and adds additional features such as:
- Support for internationalization (i18n)
- Application event handling
- Support for autowiring
- Resource loading (files, classpath)
- Eager loading of singletons
In most cases, it is recommended to use ApplicationContext, as it offers a richer set of features and conveniences for developing Spring applications.
Example:
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
MyBean bean = context.getBean(MyBean.class);