使用场景1
使用场景2
Bean属性继承xml文件写法
没有父类,配置中删掉class属性
Bean属性继承应用场景:
场景一:ParentClass(属性1,属性2,属性3,get和set方法)
子类1(属性4,属性5)
子类2(属性6,属性7)
场景2:子类1和子类2没有父类,而是有一些相同的属性。
类1:(属性1,属性2,属性3,属性4,属性5)
类2:(属性1,属性2,属性3,属性6,属性7)
abstract="true":设置<bean>标签只是定义性的,不会对它进行实例化操作。
parent属性:在Bean的子类bean标签添加,值为父类的Id。
属性继承
Bean属性继承
代码回顾
场景二:没有parentClass父类的情况
代码回顾
场景一:存在parentClass父类的情况
只需在Class1和Class2类定义中,将继承parentClass去掉,然后加上attribute1~attribute3的定义和get、set方法。
然后在spring.xml文件,将ParentClass的bean中的路径定义
class="com.imooc.spring.ioc.Class012.ParantClass"
在spring.xml文件中加上ParentClass、Class1、Class2的bean。
在Class1、Class2的bean中对其里面各自的参数赋值,加上parent="parentClass"。
在ParentClass的bean中除了对其参数赋值,加上了abstract="true"告诉spring并不是一个真正需要实例化的bean,只是一个定义性的bean,只是有这样一个结构,并不需要实例化操作。
应用场景二
Class1和Class2不是继承于同一个父类,但是仍有部分的属性一致。
Bean属性继承
应用场景图一
场景二,没有共同继承的父类时,此时仅需在场景一的基础上删除对parentclass的声明中的class属性,即白色线划掉的部分
场景1:class1和class2都有一个共同的父类parentclass,在此情境下要简化代码的重点是在父类bean标签中加入abstract="true",来告诉spring这个class是不需要实例化的。在子类标签中加入parent="parentclass"
Bean 属性 继承 实例:
第五步: @Test 单元测试结果Bean 属性 继承 实例:
第四步: 在 spring.xml 配置 Bean 到容器中,并将 ParentClass 和 Class1、Class2 关联起来
Bean 属性 继承 实例:
第三步:创建 Class2 类,并创建 attribute7、attribute8 两个变量
Bean 属性 继承 实例:
第二步:创建 Class1 类,并创建 attribute4、attribute5 两个变量
Bean 属性 继承 实例:
第一步:创建 ParentClass 类,并创建 attribute1、attribute2、attribute3 三个变量
Bean 属性继承的适用场景一
回顾总结:
场景二 继承父类的Bean
场景一 继承父类的Bean
场景2,也是继承,但是父bean中的属性不能被继承,在子bean中需要分开单独写属性值