• spring入门——applicationContext与BeanFactory的区别


        我们知道从applicationContext容器对象中如何获取Bean了,其实spring框架还有另外一种获取bean的方法:BeanFactory代码如下:

      BeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/hsp/ioc/beans.xml"));
        类1 对象1 =(类1)factory.getBean("类1");

        那么,两者之间有啥区别呢?

    applicationContext

        当我们使用applicationContext来获取对象的时候,只要我们实例化容器,那么所有的对象都会被实例化(前提是将bean配置成单例模式,如果不是单例模式,也不会预加载,因为容器无法确定服务器究竟需要多少个对象)。

        

    BeanFactory

        而当我们使用BeanFactory去获取bean的时候呢,首先实例化该容器,容器中的对象是否立即实例化,根据配置文件的配置来进行配置。如果容器的bean配置的是不被立即实例化,那只有执行getBean 的代码去获取某个bean的时候,容器才会将对象实例化。

    对比

        使用applicationContext的好处就是:所有的对象都可以预加载,缺点就是消耗服务器的内存;而我们使用BeanFactory的话,好处是节约内存,缺点则是速度会相对来说慢一些。而且有可能会出现空指针异常的错误。而且通过bean工厂创建的bean生命周期会简单一些。

  • 相关阅读:
    Scala-高阶函数
    Scala-高阶函数
    Fragment学习笔记
    android中progress进度条的使用
    spinner下拉列表
    GridView
    利用jsp和servlet,MySQL实现简易报表
    android中TimePicker和DatePicker的简单使用
    android适配器及监听点击和滚动在ListView中的使用
    android简易计算器
  • 原文地址:https://www.cnblogs.com/liyasong/p/spring_getBeanDB.html
Copyright © 2020-2023  润新知