Spring框架学习-SpringBean包-DefaultListableBeanFactory入门

DefaultListableBeanFactory

DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认的实现。XmlBeanFactory继承自DefaultListableBeanFactory,与DefaultListableBeanFactory不同的是XmlbeanFactoty中使用了自定义的XML读取器XmlBeanDefinitionReader.
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第1张图片
DefaultListableBeanFactory容器类加载相关类图
alias:别名,在Spring中,除了使用id属性来指定名称之外,为了提供多个名称,可以使用alias标签来指定,而这些所有的名称都会只想同一个bean,使用案例:比如为了让应用的每一个组件更容易的对公共组件进行引用。
eg:
< bean id=”some” class=”src.com.Some” />
增加别名:
< bean id=”some” class=”src.com.Some”/>
< alias name=”some” alias=”someJava,oneJava,twoJava” />

类的简单的介绍

AliasRegistry:定义对alias的简单的增删改等操作:
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第2张图片
SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry进行方法的实现:

Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第3张图片
SingletonBeanRegistry:定义对单例的注册及获取
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第4张图片
BeanFactory:定义获取bean以及bean的各种属性
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第5张图片
defaultsingletonBeanRegistry:对接SingLetonBeanRegistry的实现
HierachicalBeanFactory:继承BeanFactory,也就是在BeanFactory定义的功能的基础之上增加了parentFactory的支持。Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第6张图片
BeanDefinitionRegistry:继承了AliasRegistry,定义对BeanDefinition的各种增删改查。Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第7张图片
FactoryBeanRegistrySupport:在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊处理功能。
ConfigurableBeanFactory:提供配置Factory的各种方法,继承了HierarchicalBeanFactory,SingletonBeanRegistry。
ListableBeanFactory:根据各种条件获取bean的配置清单。
AbstractBeanFactory:综合FactoryBeanRegistrySupport,和ConfigurableBeanFactory的功能。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第8张图片
AutowireCapableBeanFactory:提供创建Bean、自动注入、初始化以及应用bean后的处理器。继承自beanFactory,并且新增方法。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第9张图片
AbstractAutowireCapableBeanFactory:综合AbstractBeanFactory并对接口AutoWireCapable、BeanFactory进行实现。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第10张图片
ConfigurableListableBeanFactory:beanFactory配置清单,制定忽略类型及接口等。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第11张图片
DefaultListableBeanFactory:综合上面所有的功能,主要是对bean注册之后的处理。
XmlBeanFactory:继承自DefaultListableBeanFactory,对DefaultListableBeanFactory进行了扩展,主要用于从XML文档中读取BeanDefinition,对于注册及获取bean都是从父类DefaultListableBeanFactory继承的方法中进行实现的,不同于父类的个性化实现就是增加了XmlBeanDefinitionReader类型的reader属性,在XmlFactory中主要使用reader属性对资源文件进行读取和注册。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第12张图片
Spring中大部分功能都是以配置文件作为切入点的,所以Xml配置文件的读取是Spring中的重要的功能。XmlBeanDefinitionReader从资源文件读取 、解析及注册的大致流程,了解xml文件的读取。
resourceLoader:定义资源加载器,主要应用于根据给定的资源文件地址返回对应的resource。Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第13张图片
BeanDifinitionReader:主要定义资源文件读取并转化为BeanDifinition的各个功能。Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第14张图片
EnvironmentCapable:定义获取Environment(获取环境)方法。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第15张图片
DocumentLoader:定义从资源文件加载到转化为Document的功能。在这里插入图片描述
AbstractBeanDefinitionReader:对EnvironmentCapable、BeanDifinitionReader功能的实现。
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第16张图片
BeanDefinitionDocumentReader:定义读取Document并注册BeanDefinition功能
在这里插入图片描述
BeanDefinitionParserDelegate:定义解析Element的各种方法
Spring框架学习-SpringBean包-DefaultListableBeanFactory入门_第17张图片
综上:Xml文件读取的大致流程:

  1. 通过集成AbstractBeanDefinitionReader中的方法,来使用ResourceLoader将资源文件转化为对应的Resource文件;
  2. 通过DocumentLoader对Resource文件进行转化,将Resource文件转化为Document文件。
  3. 通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Document进行解析,并使用BeanDefinitionParserDelegate对Element进行解析。

你可能感兴趣的:(Java,Spring)