BeanFactory和ApplicationContext容器

1.BeanFactory容器

在Spring容器中,BeanFactory是IOC容器中的最顶级的接口,是最基础的版本,里面定义了管理bean的基本方法,如:获取bean、判断是否存在等等方法。

BeanFactory下面有很多的实现类,各有职责,其中DefaultListableBeanFactory 就是在Spring中起到生产Bean的作用。如下图:

2.ApplicationContext容器

ApplicationContext间接继承了BeanFactory接口,其里面相较于BeanFactory扩展了更多的功能和服务,也是用来管理Bean的。

3.区别

  • BeanFactory是Spring框架的基础设施,不支持AOP,web等插件,而ApplicationContext不仅包含了BeanFactory的所用功能,还支持Spring的各种插件,功能更全面。

  • BeanFactory采用的是延迟加载,只有在使用Bean时,才会进行加载实例化,这样就不能及时发现项目中的一些配置问题,而ApplicationContext是在启动时,一次性创建好了所有的Bean,但是缺点就是如果Bean较多时,会降低程序启动的效率,也会占用一定的内存空间。

相关推荐
小灰灰搞电子1 分钟前
Qt 实现炫酷锁屏源码分享
开发语言·qt·命令模式
镜花水月linyi8 分钟前
Java 线程创建的完整链路:从 Java 层 → JVM 层 → 操作系统层
java·后端·面试
电饭叔10 分钟前
TypeError:unsupported operand type(s) for -: ‘method‘ and ‘int‘
开发语言·笔记·python
zfj32113 分钟前
排查java应用内存溢出的工具和方法
java·开发语言·jvm·内存溢出
yugi98783816 分钟前
MATLAB在卫星姿态控制系统中的应用
开发语言·matlab
历程里程碑23 分钟前
C++ 7vector:动态数组的终极指南
java·c语言·开发语言·数据结构·c++·算法
ss27323 分钟前
高并发读场景:写时复制容器(Copy-On-Write)
java·开发语言·rpc
czhc114007566324 分钟前
c# 1213
开发语言·数据库·c#
一人の梅雨1 小时前
淘宝商品视频接口深度解析:从视频加密解密到多端视频流重构
java·开发语言·python
是喵斯特ya1 小时前
java反序列化漏洞解析+URLDNS利用链分析
java·安全