• 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生命周期会简单一些。

  • 相关阅读:
    [转]java中的匿名内部类总结
    linux 命令总结
    [转载]nohub java -jar xx.jar >/dev/null 2>&1 &
    Java正则表达式Pattern和Matcher类详解
    spark基础知识介绍(包含foreachPartition写入mysql)
    spark 运行架构
    spark核心原理
    行动操作
    控制操作
    键值转换操作
  • 原文地址:https://www.cnblogs.com/zhangyuhang3/p/6901073.html
Copyright © 2020-2023  润新知