Spring笔记

bean的定义部分相关的一些类的继承结构图

阅读以上的接口和类并且的做下笔记

 

AttributeAccessor:

主要的几个方法的作用就是设置属性,获取属性,移除属性,判断是否含有属性,获取所有属性的名字的数组。

AttributeAccessorSupport

实现了AttributeAccesor的方法,使用一个LinkedHashMap<String,Object>来存储属性。只增加了一个方法

BeanMetadataElement

这个接口只有一个方法getSource()。返回一个“配置源”对象。

BeanMetadataAttributeAccessor

继承了父类AttributeAccessorSupport并实现了BeanMetadataElement。在额外自己增加了两个方法

BeanDefinition

这个接口描述了一个bean实例,包括属性值,构造方法参数,还有实现了提供的更多信息。这是仅仅是最小的接口,它允许BeanFactoryPostProcessor接口对它的属性值进行修改,还有其他的bean metadata。

用字符串常量“singleton” 和 “prototype”来描述这个bean是单例的还是原生的。

设置懒加载,判断是否懒加载。

设置父bean的类名称,设置这个bean的类名称,需要注意的是这里类名并不是严格的指原来的类名,而是用原来的类修改后的。

设置这个bean是不是的其它bean在装配时的候选者。意思就是说其它bean在装配时需要用到它,它对应的类是其它类的属性,不过这仅仅用于基类的装配。对于通过名称显示引用的不起作用。即使指定的bean没有被标为自动装配候选者(autowiring candidate)也能够装配。

设置这个bean时候是首选的候选者。比如,如果有多个bean都符合装配要求的时候,也就是这么多个bean不知道选谁的时候,就选它,因为它是首选候选者。

设置工厂bean的名称。

设置工厂方法的名称

获取最原始BeanDefinition。

 AbstractBeanDefinition

这个bean比较重要,它继承了BeanMetadataAttributeAccessor并实现了BeanDefinition接口。这个类是具体实现类的基类,就想快要羽翼丰满的小鸟,再长大一点就会飞了。bean的实例对应的类继承这个类,并稍加修饰就可以实例化创建一个bean实例了。

许多方法都很重要,就不贴了。

 RootBeanDefinition

 

GenericBeanDefinition

 


 

EnvironmentCapable

这个接口表示包含并且暴露org.springframework.core.env.Environment的引用。

这个接口只有一个方法

 

BeanDefinitionReader:

这个接口的工作就是负责加载bean定义。它的实现类有XmlBeanDefinitionReader.

 

XmlBeanDefinitionReader:

 

posted @ 2018-01-01 00:42  钓鱼翁  阅读(350)  评论(0编辑  收藏  举报