1 不同点
1.1 两者来自的 jar 包不同, 如下图所示;
BeanFactory 来自springframework.beans
ApplicationContext 来自 springframework.context
1.2 ApplicationContext 属于 BeanFactory 的子类, BeanFactory 只提供了基础访问 bean 的方法, 而 ApplicationContext 除了拥有 BeanFactory 的所有功能之外, 还提供了更多的方法实现, 如资源访问的支持, 时间和传播等方面的支持;
1.3 从性能方面: BeanFactory 是按需加载 Bean, 而ApplicationContext 在创建时会将所有的 Bean 都加载起来, 以备后续使用, 也就是饿汉方式进行加载.
2 相同点
都可以实现从容器中获取 bean, 都提供了getBean 的方法.