BeanDefinition的一些信息
来源:6-2 Bean与BeanDefinition
![](http://img1.sycdn.imooc.com/user/533e4bd900011a1d02000200-100-100.jpg)
CoffeePlayer
2020-12-23
老师,您好。我对BeanDefinition的一些理解如下,请看一下我的理解对不对,不对的话请帮我纠正。谢谢!
有如下类
class Parent {}
class Child extends Parent{}
配置文件中配置如下
<bean id="parent" class="xxx.Parent" />
<bean id="child" class="xxx.Child" parent="parent"/>
-
如上两个bean是有继承关系的,在spring2.5之后, 我的理解是,当容器启动后,spring会创建一个parent bean的GenericBeanDefinition, 也会创建一个child bean 的GenericBeanDefinition, 并且会将child bean的GenericBeanDefinition中的parent属性设置为parent。 在spring2.5之前,我的理解是没有继承关系的bean会创建一个RootBeanDefinition描述该bean。有继承关系的bean,比如上面,parent bean 会创建一个RootBeanDefinition描述该bean,child bean会创建一个ChildBeanDefinition描述该bean,并且将ChildBeanDefinition中的parentName属性设置为parent。
-
通常用来在运行时接收多个BeanDefinition合并起来的信息,RootBeanDefinition能接收具有继承关系的两个BeanDefinition。承接两者合并在一起的除了parent属性以外的属性。 spring是如何将具有继承关系的两个BeanDefinition合并起来的? 能举个例子吗?
老师,网上有没有比较好的这一块的博客,奈何我的知识有限,并不能分辨一些错误的博客,
如果有写的靠谱的博客,请老师推荐一下。万分感激!!
1回答
-
翔仔
2020-12-24
同学好,配置里的parent关系和类的实际继承关系没有什么必然的联系哈,配置里面的parent只是说的是有一套公用的属性,不想多写,就可以统一提取到parent的bean里面,供child复用
使用上面的资料
https://www.cnblogs.com/huang0925/p/3644096.html
然后合并起来实际就是把属性存到一个公共的地方公用
022020-12-24
相似问题