BeanFactory(Bean工厂)

BeanFactory是spring的原始接口,针对原始结构的实现类功能比较单一,BeanFactory接口实现的容器,特点是在每次获取对象时才会创建对象
延迟实例化的优点:
应用启动的时候占用资源很少;对资源要求较高的应用,比较有优势;

ApplicationContext(应用上下文)

继承了BeanFactory接口,拥有BeanFactory的全部功能,并且扩展了很多高级特性,每次容器启动时就会创建所有的对象。
所有的Bean在启动的时候都加载,系统运行的速度快;
在启动的时候所有的Bean都加载了,我们就能在系统启动的时候,尽早的发现系统中的配置问题
建议web应用,在启动的时候就把所有的Bean都加载了。(把费时的操作放到系统启动中完成)

应用上下文的更多功能

应用上下文,继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;

  1. 国际化(MessageSource)

应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。粗俗的理解就是项目实现多种语言,我们想要哪种语言,他就可以切换到哪种语言。

  1. 访问资源,如URL和文件(ResourceLoader)
  2. 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
  3. 消息发送、响应机制(ApplicationEventPublisher)
  4. AOP(拦截器)