美文网首页
BeanFactory & ApplicationContext

BeanFactory & ApplicationContext

作者: liurui | 来源:发表于2017-09-21 11:02 被阅读0次
异同
  • 两者都是通过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较多时,程序启动较慢。

相关文章

网友评论

      本文标题:BeanFactory & ApplicationContext

      本文链接:https://www.haomeiwen.com/subject/nseaqxtx.html