一、前言
在SSM-Spring【IOC入门一】中有使用到这样一行代码获取核心容器:
1 | ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); |
通过这行代码我们可能就会想:为什么使用ClassPathXmlApplicationContext这个实现类俩创建对象?ApplicationContext还有其它实现类吗?它们之间有什么关系呢?
为了解决这一疑惑,将我了解到的知识总结如下。
二、ApplicationContext的实现类
ApplicationContext一共有三个常用的实现类,如下:
1 | ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的则加载不了。(更常用) |
三、ApplicationContext 和 BeanFactory 的区别
在查看ApplicationContext的结构体系时,发现原来ApplicationContext是继承了BeanFactory接口。
那这两者又会有什么特点呢?
(一)ApplicationContext
ApplicationContext 在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象,适用于单例模式。
(二)BeanFactory
BeanFactory 在构建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象,适用于多例模式。
Java新手,若有错误,欢迎指正!