BeanFactory & ApplicationContext

异同
  • 两者都是通过xml配置文件加载bean,ApplicationContext继承了BeanFacotry接口,而且还继承了其他接口。所以ApplicationContext和BeanFacotry相比,提供了更多的扩展功能。
  • BeanFactory是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean()才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。
  • 而ApplicationContext则相反,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。
在实际开发中用BeanFactory还是ApplicationContext ?
  • ApplicationContext包含了BeanFactory的所有功能。通常建议比BeanFactory优先。

  • 如果你选择BeanFactory则无法使用相当多的支持功能,如事务和AOP,这可能会导致混乱,因为配置并没有错误。

  • 所以一般在开发中选择使用ApplicationContext。

总结

  • BeanFactory当需要调用时才读取配置信息,生成某个类的实例。如果读入的Bean配置正确,则其他的配置中有错误也不会影响程序的运行。
  • ApplicationContext 在初始化时就把 xml 的配置信息读入内存,对 XML 文件进行检验,如果配置文件没有错误,就创建所有的Bean ,直接为应用程序服务。相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,678评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,283评论 6 342
  • 什么是Spring Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Jav...
    jemmm阅读 16,780评论 1 133
  • 那时的月亮 有雨的日子也透着些许的凉意,窗外的风把季节的过往肆意地渲染着,这城市的陌生,这五月的颜色,透明...
    胤小妖阅读 427评论 0 2
  • 茉莉香片 年青的时候
    额皮卡堂阅读 201评论 0 0

友情链接更多精彩内容