ApplicationContext和BeanFactory的区别

ApplicationContext和BeanFactory两个接口的区别:

  • ApplicationContext:它在创建核心容器时,创建对象采取的是立即加载的方式,也就是说,只要一读取完配置文件马上就创建配置文件中的对象
    • ApplicationContext 是BeanFactory的子接口,它增添:
      更容易与Spring的AOP特性集成
      消息资源处理(用于国际化)
      事件发布
      特定的应用层环境,如用于web应用程WebApplicationContext。

    • ApplicationContext的三个常用实现类
      1.AnnotationConfigApplicationContext
      它是用于读取注解创建容器

      2.ClassPathXmlApplicationContext
      它可以加载类路径下的配置文件,要求配置文件必须在类路径下

      1. FileSystemXmlApplicationContext
        它可以加载磁盘任意路径下的配置文件(必须要有访问权限)
  • BeanFactory:它在构建核心容器时,创建对象采取的是延迟加载的方式,也就是说,什么时候根据id获取对象了,什么时候才真正创建对象

简而言之,BeanFactory提供了配置框架和基本功能,而ApplicationContext添加了更多企业特定的功能。ApplicationContext是BeanFactory的一个完整超集,

你可能感兴趣的:(ApplicationContext和BeanFactory的区别)