ApplicationContext 和 BeanFactory 区别

本文介绍了Spring框架中的BeanFactory和ApplicationContext的区别,包括两者的关系(BeanFactory是ApplicationContext的基础接口),功能差异(ApplicationContext提供更多特性如国际化和性能优化),以及在实际开发中的使用建议。
摘要由CSDN通过智能技术生成

目录

1、介绍  BeanFactory 

2、ApplicationContext 和 BeanFactory 区别


1、介绍  BeanFactory 

      如今中我们会使用 ApplicationContext 来获取 spring的上下文对象,除了该接口之外,我们还可以使用 BeanFactory 来获取 spring 的上下文

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("XXXXX.xml"));

       这个接口在jdk1.5之前就有了,出现还是比较早,如果拿它读取 xml 文件还可以,但是如果拿它读取 @Bean 注解之类的就会报错。

       如今已经不推荐使用了,如果使用的话还是推荐使用它的子类 ApplicationContext 。

 平时写代码中我们虽然不常用该类,但是面试时还是会提到 ApplicationContext 和 BeanFactory 的区别,所以我们还是要了解一下。

2、ApplicationContext 和 BeanFactory 区别

区别如下🤲

 相同点:

  1. 都可以得到 Spring 上下文对象
  2. 都是来自 Spring 的顶级接口。

不同点:

  1. 继承关系和功能:ApplicationContext 属于 BeanFactory 的子类;只有 BeanFactory 只有最基础访问 Bean 的能力,而 ApplicationContext 除了拥有 BeanFactory 功能之外,还包括了更多的功能,如:国际化支持、资源访问能力、事件传播能力等。
  2. 性能:ApplicationContext 加载方式是将 Bean 对象一次性加载,所以在后面访问 Bean 对象时会很快: BeanFactory 需要某个 Bean 时,采取加载 Bean 对象,所以它在执行 Bean 获取时,比较慢。
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱躺平的威威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值