Spring5源码之ApplicationContext与BeanFactory的区别

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

这篇文章主要介绍了Spring5源码之ApplicationContext与BeanFactory的区别,两者都是用于加载Bean的,需要的朋友可以参考一下。

1、ApplicationContext与BeanFactory的类实现的区别

两者都是用于加载Bean的,但是相比之下,ApplicationContext提供了更多的扩展功能,简单一点来说:ApplicationContext包含了BeanFactory的所有功能。通常建议比BeanFactory优先,除非在在一些限制的场合,比如字节长度对内存有很大的影响时(Applet)。绝大多数“典型的”企业应用和系统,ApplicationContext就是你需要使用的。下面通过IDEA生成Diagrams关系图的生成,查看类的实现关系,接口的继承关系如下图所示:可以看到ApplicationContext实现了BeanFactory。 applicationContext

2、ApplicationContext与BeanFactory加载配置文件的区别

  • 使用 BeanFactory方式加载XML
// 使用 BeanFactory方式加载XML
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beanFactory.xml"));
  • 使用ApplicationContext方式加载XML
 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beanFactory.xml");

如果您觉得有帮助,欢迎点赞哦 ~ ~ 多谢~ ~