博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ApplicationContext的实现类以及BeanFactory & ApplicationContext的区别
阅读量:3960 次
发布时间:2019-05-24

本文共 800 字,大约阅读时间需要 2 分钟。

一、ApplicationContext的实现类

在这里插入图片描述
        ① ClassPathXMLApplicationContext:加载类路径下的配置文件,要求配置文件必须在类路径下。
在这里插入图片描述
        ② FileSystemXmlApplicationContext:在访问允许的前提下加载位于磁盘任意路径下的配置文件。
            示例:ApplicationContext ac = new FileSystemXmlApplicationContext(“C:\Users\Administrator\Desktop\applicationContext.xml”);

        ③ AnnotationConfigApplicationContext:基于读取注解的方式创建容器。

二、BeanFactory与ApplicationContext的区别

        * ApplicationContext在构建核心容器时的对象创建策略是配置文件读取完毕后立即创建指定的对象(立即加载)。
        证明:在测试类的容器声明处添加断点,并在持久层实现类或业务层实现类中定义一个无参构造函数进行测试输出,随后程序以Debug模式启动,单步跳过创建容器的代码后发现控制台输出测试文字,据此说明核心容器构建对象的策略是读取完配置文件后立即创建配置文件中指定的对象。
在这里插入图片描述
在这里插入图片描述
        * BeanFactory在容器创建完成后并不会马上创建配置文件中指定的对象,而是在对象真正需要使用时才根据bean标签的id属性值构建指定的对象(延迟加载)。
        证明:程序以Debug模式启动后运行至示例代码的前三行时控制台仅输出测试文字,无任何对象信息输出,据此说明BeanFactory仅在对象真正需要使用时才进行创建。
在这里插入图片描述
        结论:ApplicationContext适用于创建单例对象,而BeanFactory则更适用于创建多例对象,Spring的强大之处在于能够根据配置上的不同自动选择对象的创建策略

转载地址:http://fpmzi.baihongyu.com/

你可能感兴趣的文章
P8-c++对象和类-01默认构造函数详解
查看>>
P1-c++函数详解-01函数的默认参数
查看>>
P3-c++函数详解-03函数模板详细介绍
查看>>
P4-c++函数详解-04函数重载,函数模板和函数模板重载,编译器选择使用哪个函数版本?
查看>>
P5-c++内存模型和名称空间-01头文件相关
查看>>
P6-c++内存模型和名称空间-02存储连续性、作用域和链接性
查看>>
P9-c++对象和类-02构造函数和析构函数总结
查看>>
P10-c++对象和类-03this指针详细介绍,详细的例子演示
查看>>
bat备份数据库
查看>>
linux数据库导出结果集且比对 && grep -v ---无法过滤的问题
查看>>
shell函数与自带变量
查看>>
linux下shell获取不到PID
查看>>
sort详解
查看>>
linux,shell中if else if的写法,if elif
查看>>
shell中单引号、双引号、反引号的区别
查看>>
shell脚本死循环方法
查看>>
shell中$*和$@的区别
查看>>
log4cxx 的编译安装过程和使用
查看>>
简单邮件系统程序
查看>>
STL里的multimap使用详解
查看>>