(1)从继承关系上来看: BeanFactory它是ApplicationContext 的父接口 (2)从功能上来看: BeanFactory才是spring中的核心容器,而ApplicationContext 是组合或者说是借助了(继承)了BeanFactory的功能。 1.1什么是BeanFactory? 表面上我们用到了getbean方法 实际上:IOC,DI以及Bean的生命周期的各种功能都有它的实现类提供的。
BeanFactory的API更偏向底层,ApplicationContext的API大多数是对这些底层API的封装 Bean创建的主要逻辑和功能都被封装在BeanFactory中,ApplicationContext不仅继承了BeanFactory,而且ApplicationContext内部还维护着BeanFactory的引用,所以,ApplicatioContext与BeanFactory既有继承关系,,又有融合关系 Bean的初始化时机不同,原始BeanFactory...
生活中我们一般会把生产产品的地方称为工厂,而在这里bean对象的地方官方取名为BeanFactory,直译Bean工厂(com.springframework.beans.factory.BeanFactory),我们一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文。 Spring的核心是容器,而容器并不唯一,框架本身就提供了很多个容器的实现,大概分为两种类型: 一种是...
ApplicationContext是BeanFactory的超集,也就是说,ApplicationContext拥有BeanFactory的所有功能,同时还提供了更多的功能。 ApplicationContext在启动时会自动加载BeanFactory,并且在此基础上进行扩展。总的来说,BeanFactory是Spring框架的基础设施,ApplicationContext是在BeanFactory基础上进行扩展的。对于大多数的应用场景,使用Ap...
先说结论:ApplicationContext类型容器的内部维护了一个BeanFactory类型的容器,bean都是存在这个内部BeanFactory里的 当然,这两个都是接口,真正使用的容器是它们的实现类 目录 spring源码系列01-BeanFactory和ApplicationContext的关系 一、从类图开始 二、一段spring入门代码 ...
欢迎来到本篇技术博客,今天我们将探讨Spring框架中两个重要的容器:BeanFactory 和 ApplicationContext。这两者在Spring应用程序中扮演着关键的角色,但它们之间存在一些重要的区别。在本文中,我们将详细讨论这些区别,并通过代码示例演示它们的用法。 引言 Spring框架是一个功能强大且广泛使用的Java开发框架,它提供了一种轻松...
Spring中的BeanFactory和ApplicationContext都是容器接口,BeanFactory是顶层接口,ApplicationContext接口继承了...
这是Spring一部分的关系类图,从这个类图我们可以大致看出BeanFactory的和ApplicationContext的关系,BeanFactory是ApplicationContext的基类,BeanFactory所拥有的功能,ApplicationContext都拥有, 不仅如此,ApplicationContext还拓展了一些功能, 它通过继承MessageSource、 ResourceLoader等接口,在BeanFactory简单IOC容器的基础上添加了许多高...
ApplicationContext是BeanFactory的子接口,除了继承了父接口的所有功能外,还增加了许多额外的功能和服务。它不仅是一个Bean工厂,还是一个应用上下文,能够处理国际化消息、事件传播、资源加载等任务。ApplicationContext在启动时会预加载所有的单例Bean,确保它们已经准备好供后续使用。
BeanFactory是ApplicationContext的父接口,BeanFactory才是spring的核心容器,ApplicationContext实现很大程度上组合了BeanFactory的功能。 BeanFactory表面上看只有getBean方法,实际上控制反转、基本的依赖注入、直至Bean的生命周期的各种功能,都有它的实现类提供。 ApplicationContext比BeanFactory多了些啥?