zoukankan      html  css  js  c++  java
  • Spring框架IoC容器的实现类 BeanFactory 和 ApplicationContext 的区别

    摘自《JavaWeb开发从初学到精通》P379

    SpringIoC容器就是一个实现了BeanFactory接口的可实例化类。事实上,Spring提供了两种不同的容器:一种是最基本的BeanFactory,另一种是扩展的ApplicationContext。BeanFactory 仅提供了最基本的依赖注入支持,而 ApplicationContext 则扩展了BeanFactory ,提供了更多的额外功能。实例化这两种容器时是有区别的:

    (1)BeanFactory

    XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("Spring.xml"));

    获取某个类的实例时如下:

    BeansDemoClass beans = (BeansDemoClass) bFactory.getBean("beansDemoClass");

    (2)ApplicationContext

    ApplicationContext aContext = new ClassPathXmlApplicationContext("Spring.xml");
    BeansDemoClass bDemoClass = (BeansDemoClass)aContext.getBean("beansDemoClass");

    二者对Bean的初始化也有很大区别。BeanFactory当需要调用时读取配置信息,生成某个类的实例。如果读入的Bean配置正确,则其他的配置中有错误也不会影响程序的运行。而ApplicationContext 在初始化时就把 xml 的配置信息读入内存,对 XML 文件进行检验,如果配置文件没有错误,就创建所有的Bean ,直接为应用程序服务。相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。

  • 相关阅读:
    七月随想
    曾经的诗
    Foundry feats. MultiverseStudio
    "BLAME" is out.
    去除partner页面消息 自动添加关注者的功能
    Odoo小数精度及货币精度详解
    CentOs 6.x 升级 Python 版本【转】
    django template if return false
    Odoo “坑” 系列之 XML中的布尔类型
    Qweb报表中的Reload from Attachment参数
  • 原文地址:https://www.cnblogs.com/lihuiyy/p/2512712.html
Copyright © 2011-2022 走看看