BeanFactory和ApplicationContext的区别

Application是BeanFactory的子接口

Application提供相对更完整的功能:

  1. 继承了MessageSource,支持国际化
  2. 统一的资源的访问方式
  3. 同时加载多个配置文件
  4. 提供在监听器中注册Bean的事件
  5. 载入多个(有继承关系)上下文,是的每一个配置文件都专注于一个特定的层次

区别:

  • BeanFactory是采用延迟加载技术,只有真正要使用到这个Bean的时候,才会去实例它。这样就会存在一个问题:如果Bean的某一个属性没有被注入,BeanFactory加载后,只有到Bean第一次调用getBean()的时候才会抛出异常。
  • ApplicationContext实在应用启动的时候就会加载所有的Bean,这样可以帮助我们检查Spring中的配置错误,相关的依赖是否已经正常的被注入,确保你要是用的时候他就已经准备好了。
  • 相对于BeanFactory,ApplicationContext的不足之处就是占用的内存高,应用启动的时候没有BeanFactory的快
  • BeanFactory和ApplicationContext都支持BeanPostProsser、BeanFactoryPostProessor的使用,但是BeanFactory必须自己手写代码去注入,ApplicationContext是自动注入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值