BeanFactory 是 Spring 底层 IoC 容器。他存储了很多关于 Bean 的定义、配置以及 Bean 的一个管理对象
//创建 BaenFactory 容器
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
ApplicationContext 是具备应用特性的 BeanFactory 超集
● ApplicationContext是BeanFactory的子接口
● BeanFactory是一个底层的IOC容器,提供了IOC容器的基本实现,而ApplicationContext则是BeanFactory的超集提供了丰富的企业级特性。
● ApplicationContext是委托DefaultListableBeanFactory来实现Bean的依赖查找和依赖注入
BeanFactory 和 ApplicationContext 都是 Bean 容器,但 ApplicationContext 除了是 IoC 容器,还包括:
AOP、配置元信息(Configuration Metadate)、资源管理(Resources)、事件(Events)、国际化(i18n)、注解(Annotations)、Environment 抽象(Abstraction)