zoukankan      html  css  js  c++  java
  • 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生命周期会简单一些。

  • 相关阅读:
    L1-021 重要的话说三遍
    L1-020 帅到没朋友
    pytest--钩子
    pytest--allure
    pytest--常用插件
    pytest--高级用法
    pytest--配置文件
    pytest--控制运行
    pytest--fixture
    pytest--使用前提
  • 原文地址:https://www.cnblogs.com/zhangyuhang3/p/6901073.html
Copyright © 2011-2022 走看看