上一节讲到了spring中依托PropertiesBeanDefinitionReader/XmlBeanDefinitionReader/AnnotatedBeanDefinitionReader几个类解析资源文件/class类来加载BeanDefinition到BeanDefinitionRegistry。该过程一般称之为“注册”。那注册之后通过依赖查找/依赖注入获取bean实例对象,在从BeanDefinition到Bean创建实例之间发生了什么样的变化?
首先我们观察一下BeanDefinition接口
BeanDefinition接口的主要功能就是描述bean的元信息,简单的说是描述bean的各种属性:isAbstract/scope/parentName/beanClassName;这个地方有个比较特殊的属性parentName;
如果我们的子类 subObject 继承了 parentObject,subObject会继承parentObject的属性,并可以覆盖重写。比如:
superUser 配置属性parent 为 user。那么superUser会继承user的属性比如age/name/而且会添加自己的属性address。
那该步骤发生的