目录
一、Spring中的IOC实现
在使用IOC容器之前,必须先要创建一个IOC容器,在Spring框架中提供了两种实现方式。
1.1 BeanFactory接口
BeanFactory接口是Spring框架中IOC的基本实现,主要是Spring框架内部使用,提供的功能也比较少,开发人员一般不使用这个接口。
使用BeanFactory接口创建的IOC容器,默认情况下是不会创建所管理的Bean对象,而是在使用容器中的对象时才会创建所管理的对象,这种加载对象的方式叫做 懒加载。
1.2 ApplicationContext接口
ApplicationContext接口是 BeanFactory接口的一个子接口,提供了更加丰富的功能,主要是开发人员使用。
使用ApplicationContext接口创建的IOC容器,默认情况下是在容器创建完毕,就会自动的将容器中所管理的Bean对象创建完成,这种加载对象的方式叫做 预加载。
预加载的好处:如果容器中有创建失败的对象,可以及时的收到通知,并不是等到使用的时候才知道某个对象创建失败了。
无论是使用BeanFactory接口还是ApplicationContext接口创建IOC容器,默认情况下,创建的Bean都是单例的,可以通过配置文件,指定创建多实例的Bean。
1.2.1 ApplicationContext接口的主要实现类
ApplicationContext接口是提供给开发人员使用的,但它是一个接口,我们需要使用该接口的实现。
1.2.1.1 ClassPathXmlApplicationContext类
使用这个类,表示从类路径加载Spring的配置文件。
// 1.创建IOC容器,并从类路径下加载一个名为applicationContext的XML配置文件。
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
1.2.1.2 FileSystemXmlApplicationContext类
使用这个类,表示从系统路径加载Spring的配置文件。
// 1.创建IOC容器,并从D盘下加载加载一个名为applicationContext的XML配置文件。
ApplicationContext ac = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
1.2.2 ApplicationContext接口的子接口
1.2.2.1 ConfigurableApplicationContext接口
ConfigurableApplicationContext接口扩展了ApplicationContext接口,提供了更多的功能,其中的refresh()和close()方法让Spring容器拥有了刷新、关闭的能力。
1.2.1.2 WebApplicationContext接口
专门为WEB应用准备的接口,,它允许从WEB项目的根路径加载Spring的配置文件,从而完成容器的初始化工作;需要导入Spring-web.jar才可以看到这个接口。