Now a days the question "difference between BeanFactory and ApplicationContext in Spring framework? " has became most popular in most of the industry. mostly this question is asked to more than 2 years of experience people in Spring Framework .Today we are going to discuss this topic and going to understand the differences between BeanFactory and ApplicationContext .Here i have given some differences in tabular form so to make it clear.
BeanFactory 
 | 
  
ApplicationContext 
 | 
 
BaenFactory is also known as Basic IoC Container. 
 | 
  
ApplicationContext is also known as
  Advanced IoC Conatiner. 
 | 
 
Beanfactory uses the lazy Initialization means it will create
  Singlton Bean based on the demand. 
 | 
  
ApplicationContext uses eager
  initialization means it will create all singleton Beans at the time of its
  own initialization. 
 | 
 
BeanFactory creates and manages resources by explicitely. 
 | 
  
ApplicationContext creates and manages resources by its own. 
 | 
 
Internationalization is not supported by BeanFactory.  
 | 
  
Internationalization
  is supported by ApplicationContext. 
 | 
 
Annotation based dependency is not supported by BeanFactory. 
 | 
  
ApplicationContext
  supports Annotation by using @PreDestroy @AutoWired. 
 | 
 
One of the most popular implementation of BeanFactory interface is
  XmlBeanFactory. 
 | 
  
One of
  the most popular implementation of ApplicationContext Interface is ClassPathXmlApplicationContext. 
 | 
 
If you are using auto wiring and using BeanFactory then you need
  to register AutoWiredBeanPostProcessor. 
 | 
  
If you
  are using ApplicationContext you can configure in Xml. 
 |