spring有两个核心接口,BeanFactory 和ApplicationContext ,其中ApplicationContext 是BeanFactory的子接口。他们代表了Spring容器。
BeanFactory采用工厂设计模式,负责创建和分发Bean。
要实例化BeanFactory需要传递一个java.io.InputStream 对象把Bean XML 定义文件 给XmlBeanFactory:
BeanFactory beanFactory = new XmlBeanFactory("applicationContext.xml");
要使用spring 使用的更多的是ApplicationContext
ApplicationContext提供了更多的功能
- 应用上下文提供了文本解析工具,包括国际化的支持。
- 应用上下文提供了载入文本资源的通用方法,如 载入图片。
- 应用上下文可以向注册为监听器的Bean发送事件。
Application Context常用的实现方法如下:
//文件系统中的XML文件载入上下文定义信息,只能在指定路径中寻找foo.xml
ApplicationContext ctx = new FileSystemXmlApplicationContext("C:foo.xml");
//从类路径中的XML载入上下文定义信息
ApplicationContext ctx = new ClassPathXmlApplicationContext("foo.xml");
//从web系统的XML文件载入山下问信息
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());