ApplicationContext

定义

ApplicationContext的中文意思是“应用先后关系”,它继承自BeanFactory接口。服务器

特性

在ApplicationContext接口的众多实现类中,有3个是咱们常常用到的(见表1-1),而且使用这3个实现类也基本能知足咱们Java EE应用开发中的绝大部分需求。
表1-1 ApplicationContext接口的经常使用实现类介绍
类 名 称
功 能 描 述
ClassPathXmlApplicationContext
从类路径ClassPath中寻找指定的XML配置文件,找到并装载
完成ApplicationContext的实例化工做。例如:
//装载单个配置文件实例化ApplicationContext容器
ApplicationContext cxt = new ClassPathXmlApplicationContext
("applicationContext.xml");
//装载多个配置文件实例化ApplicationContext容器
String[] configs = {"bean1.xml","bean2.xml","bean3.xml"};
ApplicationContext cxt = new ClassPathXmlApplicationContext(configs);
FileSystemXmlApplicationContext
从指定的文件系统路径中寻找指定的XML配置文件,找到并装载
完成ApplicationContext的实例化工做。例如:
//装载单个配置文件实例化ApplicationContext容器
ApplicationContext cxt = new FileSystemXMLApplicationContext
("beans.xml");
//装载多个配置文件实例化ApplicationContext容器
String[] configs = {"c:/beans1.xml","c:/beans2.xml"};
ApplicationContext cxt = new FileSystemXmlApplicationContext(configs);
XmlWebApplicationContext
从Web应用中的寻找指定的XML配置文件,找到并装载完成 ApplicationContext的实例化工做。这是为Web工程量身定制的,使用WebApplicationContextUtils类的 getRequiredWebApplicationContext方法可在JSP与Servlet中取得IoC容器的引用


实现

这些实现类的主要区别就是装载Spring配置文件实例化ApplicationContext容器的方式不一样,在 ApplicationContext实例化后,一样经过getBean方法从ApplicationContext容器中获取装配好的Bean实例以供 使用。
与BeanFactory不一样的是,ApplicationContext容器实例化后会自动对全部的单实例 Bean进行实例化与依赖关系的装配,使之处于待用状态。而BeanFactory容器实例化后并不会自动实例化Bean,只有当Bean被使用时 BeanFactory容器才会对该Bean进行实例化与依赖关系的装配。

在Java项目中经过ClassPathXmlApplicationContext类手动实例化 ApplicationContext容器一般是不二之选。但对于Web项目就不行了,Web项目的启动是由相应的Web服务器负责的,所以,在Web项 目中ApplicationContext容器的实例化工做最好交给Web服务器来完成。Web.xml?app

相关文章
相关标签/搜索