一、顶层容器
1、org.springframework.beans.factory.BeanFactory
接口提供了IoC容器最基本功能
主要的实现类:org.springframework.beans.factory.xml.XmlBeanFactory,4.2.5版本已经注释为过时,不要再使用了。
BeanFactory实现,提供基本的IoC容器功能,可以从classpath或文件系统等获取资源;
1.1、从文件系统中初始化beanFactory
File file = new File("fileSystemConfig.xml"); Resource resource = new FileSystemResource(file); BeanFactory beanFactory = new XmlBeanFactory(resource);
1.2、从classpath中初始化beanFactory
Resource resource = new ClassPathResource("classpath.xml"); BeanFactory beanFactory = new XmlBeanFactory(resource);
2、org.springframework.context.ApplicationContext
扩展了BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现 (如针对web应用的WebApplicationContext)
主要的实现类:
类名 | 启动方式 | 从WEB启动 |
org.springframework.context.support.ClassPathXmlApplicationContext | xml配置方式启动 | NO |
org.springframework.context.support.AnnotationConfigApplicationContext | 注解方式启动 | NO |
org.springframework.web.context.support.XmlWebApplicationContext | xml配置方式启动 | YES |
org.springframework.web.context.support.AnnotationConfigWebApplicationContext | 注解方式启动 | YES |
简单说, BeanFactory提供了IoC容器最基本功能,而 ApplicationContext 则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用于ApplicationContext。