Spring容器是什么

从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并由其通过IoC技术管理,串联他们的整个生命周期从创建到销毁。

从具象化讲:通过概念的描述有些同学还是一脸懵逼,在我们的项目中哪个东西是Spring容器?在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。

Spring容器的功能包括:

Spring容器的类别及其特点:

具体的源码实现:

创建Spring Bean 是典型的工厂模式

BeanFactory 是最顶层的一个接口类,定义了IOC 容器最基本功能规范。

BeanFactory 有个重要的子类

ListableBeanFactory、HierarchicalBeanFactory、AutowireCapableBeanFactory

从类图中可以看到最终的默认实现类是DefaultListableBeanFactory,实现了所有的接口

定义这么多层接口的目的:每个接口都有它使用的场合,主要是为了区分在Spring 内部操作对象的传递和转化过程,对对象数据访问所做的限制

ListableBeanFactory 这些Bean 是可列表化

HierarchicalBeanFactory 表示Bean是有继承关系的

AutowireCapableBeanFactory bean的自动装配

三个接口总结:Bean的集合、Bean之间的关系、Bean行为

BeanFactory 只定义了IOC 容器的基本行为,不关心bean 是如何定义加载的。
IOC 容器具体的实现需要了解GenericApplicationContext、ClassPathXmlApplicationContext等

BeanDefinition 描述了Spring IOC容器中bean 之间的关系

Bean 的解析主要是对配置文件进行解析,这个过程较复杂,功能被分的很细,这个解析过程就是通过BeanDefinitionReader 来完成

到这里对Spring 框架体系有了一个基本了解,后续会持续更新

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐