现在的位置: 首页 > 综合 > 正文

spring中BeanFactory和ApplicationContext

2013年06月18日 ⁄ 综合 ⁄ 共 807字 ⁄ 字号 评论关闭

BeanFactory是Spring框架最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象称为可能。

ApplicationContext建立在BeanFactory基础之上,提供更多面向应用的功能,它提供了国际化支持和框架事件体系,更易于创建实际应用。

我们一般称BeanFactoryIoC容器,而称ApplicationContext为应用上下文。但有时为了行为方便,我们也将ApplicationContext称为Spring容器。

对于两者的用途,我们可以进行简单划分:BeanFactorySpring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory

 

愚见:ApplicationContext间接BeanFactory,最大的区别是BeanFactory初始化时不会去实例化XML配置文件里的bean,只有被调用是才会去实例化该bean,对于singleton的bean来说,BeanFactory会缓存该实例。ApplicationContext在初始化时,会先实例化singleton的bean(spring的bean是否单例由scope属性或singleton属性决定,默认为singleton,即单例,注意,是在该IOC容器内单例,classloader就不一样了),当然可以通过XML配置文件中bean标签的lazy-init属性来指定该bean是否需要延迟加载,但有种特殊情况是,非懒加载的bean依赖与懒加载的bean是,懒加载功能就失效了。在web开发中,通常实用ApplicationContext来作为容器,特别是WebApplicationContext

 

如有错误,请指正!

抱歉!评论已关闭.