spring中BeanFactory和ApplicationContext

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

 

如有错误,请指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值