118、ApplicationContext和BeanFactory有什么区别

ApplicationContext和BeanFactory有什么区别

  • BeanFactory是Spring的最底层接口,包含bean的定义,管理bean的加载,实例化,控制bean的生命周期,特点是每次获取对象时才会创建对象,属于懒加载哦
  • 与 BeanFactory 懒加载的方式不同,ApplicationContext 是预加载,所以,每一个 bean 都在 ApplicationContext 启动之后实例化
  • BeanFactory和ApplicationContext都支持BeanPostProcessor,BeanFactoryPostProcessor,但BeanFactory需要手动注册,ApplicationContext则是自动注册。
  • BeanFactory通常以编程的方式被创建,ApplicationContext可以以声明的方式创建,如使用ContextLoader
  • ApplicationContext是BeanFactory的子接口,拥有BeanFactory的全部功能,并且扩展了很多高级特性,每次容器启动时就会创建所有的对象。 ApplicationContext的额外功能:
    (1)继承MessageSource,支持国际化;
    (2)统一的资源文件访问方式;
    (3)提供在监听器中注册bean;
    (4)同时加载过个配置文件;
    (5)载入多个(有继承关系)上下文,使得每个上下文都专注于一个特定的层次,比如应用的web层。

你可能感兴趣的:(java,spring,BeanFactory,懒加载,国际化,bean,预加载)