欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BeanFactory和ApplicationContext的区别

程序员文章站 2022-05-24 11:29:31
...

BeanFactory和ApplicationContext的区别

  • 通过类视图我们可以看出,BeanFactory是Spring中IoC容器的顶层接口,而ApplicationContext是它的一个子接口,所以ApplicationContext具备BeanFactory提供的全部功能。

    通常情况下,我们称BeanFactory是Spring的IoC基础容器。而ApplicationContext是容器的高级接口,它比BeanFactory多了很多重要的功能。例如,父子容器的概念(在SpringMVC课程中讲解),AOP的支持,消息发布机制,事件处理机制,国际化和资源访问等等。

  • BeanFactory 和 ApplicationContext 的区别:

    • 创建对象的时间点不一样。
      • ApplicationContext:只要一读取配置文件, 默认情况下就会创建对象。
      • BeanFactory:什么使用什么时候创建对象

ApplicationContext 接口的实现类

  • ClassPathXmlApplicationContext:
    • 它是从类的根路径下加载配置文件,推荐使用这种
  • FileSystemXmlApplicationContext:
    • 它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置
  • AnnotationConfigApplicationContext :
    • 当我们使用注解配置容器对象时,需要使用此类来创建 spring 容器。它用来读取注解

代码演示

// 创建容器对象,加载配置文件
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
//从容器获取对象
Object obj = ac.getBean("accountService");
System.out.println(obj);