BeanFactory or ApplicationContext?

来源:互联网 发布:mac 泡泡堂 编辑:程序博客网 时间:2024/04/29 10:06

Spring provides container implementations with two  types :

 

Bean factories(defined by the  org.springframework.beans.factory.BeanFactory interface)
are the simplest of containers, providing basic support for DI.

 

Application contexts(defined by the org.springframework.context.ApplicationContext interface)
build on the notion of a bean factory by providing application framework services.

 

 

BeanFactory

  • A bean factory is a general-purpose factory, creating and dispensing many types of beans
  • It is able to create associations between collaborating objects as they are instantiated
  • A bean factory also takes part in the lifecycle of a bean
  • While the bean factory will immediately load the bean definitions, the beans themselves will not be
    instantiated until they are needed (lazy loading)

ApplicationContext

  • advanced container ApplicationContext is much the same as a BeanFactory, but offers much more
  • Because of the additional functionality it provides, an ApplicationContext is preferred over a
    BeanFactory in nearly all applications
  • An application context preloads all singleton beans upon context startup (different from bean factory)