天天看点

spring源码解析-Ioc1

声明:以前学习《Spring源码深度解析》这本书时的记录,书写的很好,感谢作者

一.XmlBeanFactory

spring源码解析-Ioc1

1.AliasRegistry定义对Alias的简单增删改等操作;

2.SimpleAliasRegistry使用currenthashmap作为缓存,并对接口AliasRegisty进行实现;

3.SingletonBeanRegistry定义对单例的获取及获取;

4.DefaultSingletonBeanRegistry是SingletonBeanRegistry的实现;

5.FactoryBeanRegistrySupport在DefaultSingletonBeanRegistry基础上,增加对FactorBean的特殊处理功能;

6.BeanFactory定义获取bean及bean的各种属性;

7.HierarchicalBeanFactory继承BeanFactory,增加对parentFactory的支持;

8.ConfigurableBeanFactory提供配置各种factory的方法;

9.ListableBeanFactory根据不同条件获取bean的配置清单;

10.AutowireCapableBeanFactory提供创建bean,自动注入,初始化已经应用bean后的处理器;

11.AbstractBeanFactory综合FactoryBeanRegistrySupport和ConfigurableBeanFactory功能;

12.ConfigurableListableBeanFactory是BeanFactory的配置清单,指定忽略类型和接口等;

13.AbstractAutowireCapableBeanFactory综合AbstractBeanFactory并对接口AutowireCapalbeBeanFactory的实现;

14.BeanDefinitionRegistry定义对BeanDefinition的curd操作;

15.DefaultListableBeanFactory综合所有功能,主要是bean注册后的处理;

16.XmlBeanFactory对DefaultListableBeanFactory类进行了扩展,主要是从xml文档读取BeanDefinition,对于注册以及获取Bean都是从父类DefaultLisstableBean继承的方法去实现,与父类的不同就是增加了XmlBeanDefinitionReader类型的reader属性,在XmlBeanFactory中主要使用reader属性对资源文件进行读取和注册;

二.BeanDefinition

spring源码解析-Ioc1

1.BeanDefinition配置文件<bean>元素在容器的内部表现形式; 2.ChildBeanDefinition父子bean中的子bean; 3.GenericBeanDefinition2.5后加入,一站式的服务类; 4.RootBeanDefinition对应一般性的bean元素标签,父子bean中的父bean可以用此表示,没有父bean的bean也使用来表示;

三.XmlBeanDefinitionReader

spring源码解析-Ioc1

1.EnvironmentCapable定义获取Environment的方法;

2.BeanDefinitionReader主要定义资源文件读取并转化为BeanDefinition的各种功能;

3.AbstractBeanDefinitionReader对接口的实现;

4.ResourceLoader资源加载器,根据给定的资源文件地址返回对应的Resource;

5.DocumentLoader资源文件转化为Document的功能;

6.BeanDefinitionDocumentReader读取Document并注册BeanFinition的功能;

7.BeanDefinitionParserDelegate定义解析element的各种方法;

继续阅读