17.内部工作机制
1. 概览图
2. 说明
-
InstantiationStrategy
负责创建对象,策略模式,参见18.策略模式 -
BeanWrapper
相当于一个代理器,Spring委托BeanWrapper完成Bean属性的填充工作。在Bean实例被InstrantitationStrategy被创建出来之后,容器主控程序将Bean实例通过BeanWrapper包装起来,这是通过
BeanWrapper#setWrappedInstance(Object obj)
方法完成的。 一个BeanWrapperImpl实例内部封装了两类组件:被封装待处理的Bean,以及一套用于设置Bean属性的属性编辑器。具体流程:
从Spring BeanDefinitionRegistry 获取BeanDefitnition
->从BeanDefinition中获取Bean属性的配置信息PropertyValuee
->使用属性编辑器对PropertyValue进行转换的到属性值