美文网首页
Spring 核心类介绍

Spring 核心类介绍

作者: Theodore的技术站 | 来源:发表于2019-03-03 11:33 被阅读7次

核心类介绍

1.DefaultListableBeanFactory

DefaultListableBeanFactory 是整个 Bean 加载的核心部分,是 Spring 注册及加载 Bean 的默认实现,XmlBeanFactory 继承自 DefaultListableBeanFactory ,XmlBeanFactory 自定义了 XML 读取器 XmlBeanDefinitionReader,实现了个性化的 BeanDefinitionReader 读取。

DefaultListableBeanFactory 继承关系:


image.png

-AliasRegistry: 定义了对 Alias 简单的增删改操作。

-SimpleAliasRegitry: 使用了 Map 作为 Alias 的缓存,并实现 AliasRegistry 接口。

-SingletonBeanRegistry: 定义对单例的注册获取。

-BeanFactory: 获取 bean 以及 bean 的 isSingleton,isPrototype,isTypeMatch 等属性。

-DefaultSingletonBeanRegistry: 对 SingletonBeanRegistry 的实现。

-HierarchicalBeanFactory: 继承 BeanFactory, 在此基础增加了对 ParentBeanFactroy 的支持,多出 BeanFactory getParentBeanFactory();和 boolean containsLocalBean(String name);方法。

-BeanDefinitionRegistry: 继承 AliasRegitry,定义了对 BeanDefinitionRegistry 的基本操作。

-FactoryBeanRegistrySupport : 继承 DefaultSingletonBeanRegistry,并在此基础上增加对 FactoryBean 的一些操作。

-ConfigurableBeanFactory:提供配置Factory的各种方法。

-ListableBeanFactory: 获取Bean的配置清单。

-AbstractBeanFactory: 综合 FactoryBeanRegitrySupport 和 ConfigurableBeanFactory 的功能。

-AutowireCapableBeanFactory: 提供创建 bean,自动注入,初始化以及应用 bean 的后处理器。

-AbstractAutowireCapableBeanFactory:结合 AbstractBeanFactory 和 接口 AutowireCapableBeanFactory。

-ConfigurableListableBeanFactory : BeanFactory 配置清单,指定忽略类型及接口等。

-DefaultListableBeanFactory: 综合上述所有功能,主要是对 bean 注册后的处理。

2.XmlBeanDefinitionReader

XML 配置文件的读取是 Spring 中重要的功能,因为 Spring 的大部分功能都是以配置作为切入点。
XmlBeanDefinitionReader 相关图:

image.png

-ResourceLoader:定义资源加载器,主要应用于根据给定的资源文件地址返回对应的 Resource;

-BeanDfinitionReader:主要定义资源文件的读取并转换为BeanDefinition的各个功能;

-EnvironmentCapable:定义获取 Environment 方法;

-DocumentLoader:定义从资源文件加载到转换为 Document 的功能;

-AbstractBeanDefinitionReader:对 EnvironmentCapable,BeanDefinitionReader 类定义的功能进行实现;

-BeanDefinitionDocumentReader:定义读取Document并注册 BeanDefinition 的功能;

-BeanDefinitionParserDelegate:定义解析Element的各种方法;

Xml 配置文件读取大致流程:
1、通过继承自AbstractBeanDefinitionReader中的方法,来使用ResourLoader将资源文件路径转换对应的Resource文件;

2、通过DocumentLoader对Resource文件进行转换,将Resource文件转换为Document文件

3、通过实现BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Docment进行解析,并使用BeanDefinitionPareserDelegate对Element进行解析

相关文章

网友评论

      本文标题:Spring 核心类介绍

      本文链接:https://www.haomeiwen.com/subject/rjdpuqtx.html