BeanFactory和ApplicationContext实例化Bean 的时机不同:
BeanFactory等到程序需要Bean实例时才创建Bean,而ApplicationContexts在创建ApplicationContext实例时,会与初始化容器中的全部Bean。
因为采用ApplicationContext作为SPring容器,创建容器时会同时创建容器中的所有singleton作用域的Bean,因此可能需要更多的系统开销,但一旦成功,应用后面的响应速度快,因此,对于普通JavaEE应用,推荐使用ApplicationContext作为Spring容器。但可以在容器初始化阶段就检验出配置错误。
singleton作用域的Bean指定lazy-init=“true”,该属性将改变singleton Bean实例的默认行为,强制取消Bean实例预初始化