一、顶层容器
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。