ApplicationContext 和 BeanFactory 的区别

1 不同点

1.1 两者来自的 jar 包不同, 如下图所示;

BeanFactory 来自springframework.beans
ApplicationContext 和 BeanFactory 的区别_第1张图片
ApplicationContext 来自 springframework.context
ApplicationContext 和 BeanFactory 的区别_第2张图片

1.2 ApplicationContext 属于 BeanFactory 的子类, BeanFactory 只提供了基础访问 bean 的方法, 而 ApplicationContext 除了拥有 BeanFactory 的所有功能之外, 还提供了更多的方法实现, 如资源访问的支持, 时间和传播等方面的支持;

1.3 从性能方面: BeanFactory 是按需加载 Bean, 而ApplicationContext 在创建时会将所有的 Bean 都加载起来, 以备后续使用, 也就是饿汉方式进行加载.

2 相同点

都可以实现从容器中获取 bean, 都提供了getBean 的方法.

你可能感兴趣的:(Java,后端,Spring,java,spring,后端)