前言
你我在此相遇,全因八股文。
一年之后就要找实习了,所以我想提前储备好知识,希望被面试的时候不会被拷打死。本系列文章将会分享我探索Spring框架的经历与了解到的知识。
至此,既然逃不掉,那就使劲造。
以下是本文探讨的问题:
- BeanFactory与Application的区别?
- BeanFactory与Application的实现?
一.BeanFactory与ApplicationContext的区别?
1.它俩为何物?
BeanFactory顾名思义,Bean的加工厂,主要责任是对Bean进行实例化、配置和管理,并支持延迟初始化(支持在获取Bean时才进行实例化),提供了最简单的容器功能。
ApplicationContext-------应用上下文 ,是BeanFactory的子接口,由BeanFactory派生而来,是一个维护Bean定义以及对象之间协作关系的高级接口,能提供更多企业级功能。
两者同为Spring框架中的容器,而ApplicationContext继承了多个接口,相比BeanFactory拓展了更多实用功能,作为Spring核心容器的它起着不可或缺的功能。
我们先看到两者的继承关系
ApplicatonContext间接继承了BeanFactory
同时BeanFactory作为一个简单功能的容器,体现有二。
其一,我们可以在SpringApplication.run方法生成 ConfigurableApplicationContext的一个实现类中AbstractApplicationContext的getBean方法得知其底层是获取BeanFactory对象调用其中getBean方法的。