一、Beans包的层级结构
要了解Spring的Bean的结构组成,首先让我们看看源码的Bean的源码结构:
这个就是Spring的Bean的目录结构:
main/java:展示Spring的主要逻辑。
majn/resources:存放系统的配置文件
test/java:主要逻辑的单元测试。
test/resources:测试的配置文件。
二、核心类介绍
1.DefaultListableBeanFactory
下面请先看DefaultListableBeanFactory的层级结构。
这里可以知道XmlBeanFactory是继承自DefaultListableBeanFactory的,而两者不同之处在于XmlBeanFactory中使用了自定义的XML阅读器XmlBeanDefinitionReader,实现了个性化的BeanDefinitionReader读取。
DefaultListableBeanFactory继承了AbstractAutowireCapableBeanFactory并实现了ConfigurableListableBeanFactory,BeanDefinitionRegistry的接口,下面是ConfigurableListableBeanFactory的关系图:
下面简单介绍每个类的作用:
AliasRegistry:定义对alias的简单增删查改的操作
SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry进行实现。
SingletonBeanRegistry:定义对单例的注册及获取
BeanFactory:定义获取bean及bean的各种属性
DefaultSingletonBeanRegistry:对接口SingletonBeanRegistry各函数的实现