二者的关系
BeanFactory 才是 Spring 容器中的顶层接口。
ApplicationContext 是它的子接口。
二者的区别
BeanFactory 和 ApplicationContext 的区别:
创建对象的时间点不一样。
ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么使用什么时候创建对象。
使用场景建议
ApplicationContext:单例对象适用,因为单例对象在程序运行时只创建一次,所以我们在读取配置文件后立即创建
BeanFactory:多利对象适用。
一般我们采用ApplicationContext,因为BeanFactory作为顶层接口功能细节不是太完善。另外spring框架比较智能,会帮助我们判断对象是单例还是多例。