首页 > 编程语言 > 详细

SpringIOC容器-xml配置bean-xml中bean的父子关系

时间:2020-04-17 22:39:55      阅读:113      评论:0      收藏:0      [点我收藏+]

一、实验使用实体类

技术分享图片

 

 

这2个类,并没有实际的父子关系,只是属性值一样

 

1.xml中,将Father类作为Son类的Parent

此时son这个bean的name是:llf,age是:22 。属性值完全继承于father这个bean,但是2个bean没有实际的继承关系,father只是作为一个模板的作用

<bean id="father" class="com.llf.bean.Father"  p:name="llf" p:age="22"></bean>
<bean id="son" class="com.llf.bean.Son" parent="father"></bean>

 

如果需要father这个bean,完全作为模板来使用,不需要实例化,那么只需要加上abstract属性,值为true,如果子bean不写class属性,class也会被继承

<bean id="father" class="com.llf.bean.Father"  abstract="true" p:name="llf" p:age="11"></bean>
<bean id="son" class="com.llf.bean.Son" parent="father"></bean>

 

如果需要某个bean必须有个前置bean,那么可以使用depends-on,值为beanName

  这里如果名字为father的bean在IOC容器中,那么启动时直接报错。 同时father这个bean也一定会在son实例化之前先加入IOC容器

 <bean id="father" class="com.llf.bean.Father" p:name="llf" p:age="11"></bean>

    <bean id="son" class="com.llf.bean.Son" parent="father" depends-on="father"></bean>

 

Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean

子 Bean 从父 Bean 中继承配置, 包括 Bean 的属性配置

子 Bean 也可以覆盖从父 Bean 继承过来的配置

父 Bean 可以作为配置模板, 也可以作为 Bean 实例. 若只想把父 Bean 作为模板, 可以设置 <bean> 的abstract 属性为 true, 这样 Spring 将不会实例化这个 Bean

注意:

  并不是 <bean> 元素里的所有属性都会被继承. 比如: autowire, abstract 等.
  可以忽略父 Bean 的 class 属性, 让子 Bean 指定自己的类, 而共享相同的属性配置. 但此时 abstract 必须设为 true

 

SpringIOC容器-xml配置bean-xml中bean的父子关系

原文:https://www.cnblogs.com/linglongfang/p/12722799.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!