Spring框架核心组件(Bean组件)赏析

with 1 comment

Spring框架的三大核心组件的Bean组件的主要作用是实例Bean的创建、定义、解析,了解Spring框架Bean组件包类构成有助于提升个人编码思路

Spring框架的核心分别是Bean、Context、Core。
本文主要针对Bean组件包中类构成和关系来了解Spring框架是如何创建、定义、解析实例Bean的。

Bean组件

Bean组件在Spring的org.springframework.Beans包下
这个包下的所有类主要解决了三件事:
Bean的定义、Bean的创建以及对Bean的解析
Spring框架的使用者唯一需要关心的就是Bean的创建,其他两个由Spring内部帮你完成

Bean的创建

Bean的创建时典型的工厂模式,顶级接口是BeanFactory

spring_bean_create.jpg

BeanFactory定义了Spring容器的核心规范,BeanFactory是Spring的最根的接口,类的工厂接口
它有三个子类:
HierarchicalBeanFactory、AutowireCapableBeanFactory、ListableBeanFactory

其他更多的类或接口都是对以上进行继承和实现以满足更多场景的使用
如:

回溯至顶点,最终的默认实现类是DefaultListableBeanFactory,实现了所有的接口,所实现的功能就是以list集合的方式操作Bean

DefaultListableBeanFactory

为什么拆分为这么多得接口和类?

功能的不同维度,分不同的接口,方便以后的维护和其他人的阅读

不同接口的实现,分布在不同的类里,方便以后不同接口多种实现的扩展
从类图分布可以看出Spring框架是面向接口编程
类的实现只是接口功能实现的一种,随时可以拓展成多种实现

Bean的定义

Bean的定义就是完整描述在Spring配置文件中定义的<Bean/>节点中所有的信息,包括各种子节点。

spring_bean_make.jpg

Spring框架成功解析你定义的一个<Bean/>节点后,在Spring框架的内部他就被转化成BeanDefinition对象,后续所有的操作都是对这个对象完成的。

Bean的解析

Bean的解析过程非常复杂,功能被分的很细,因为需要被扩展的地方很多,必须保证有足够的灵活性,以应对可能的变化
Bean的解析主要就是对Spring配置文件的解析

spring_bean_load.jpg

对tag的解析此处没有列出

Responses
  1. 知识的步步精进时刻影响着我,值得学习与发扬,活学活用

    Reply