本文主要是介绍Spring bean inheritance bean 继承,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Bean definition inheritance
定义一个基类:
package com.myapp.core.inherit;public class Father {private String name;private int age;private String type;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String toString(){return "["+name+","+age+","+type+"]";}}
对应的xml配置文件:
<!-- show the bean inheritance just see the following setting --><bean id="father" class="com.myapp.core.inherit.Father" ><property name="name" value="tom"> </property><property name="age" value="50"></property></bean><bean id="son" parent="father"><property name="age" value="24"></property><property name="type" value="child"></property></bean>
对应的测试类:
package com.myapp.core.inherit;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainTest {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");Father son = (Father)context.getBean("son");//Father father = (Father)context.getBean("father");System.out.println(son);
}
}
输出结果:
[tom,24,child]
如果需要把基类定义为模板 需要在基类中加入 abstract="true" 属性
修改后为:
<!-- show the bean inheritance just see the following setting --><bean id="father" class="com.myapp.core.inherit.Father" abstract="true" ><property name="name" value="tom"> </property><property name="age" value="50"></property></bean><bean id="son" parent="father"><property name="age" value="24"></property><property name="type" value="child"></property></bean>
定义为抽象的基类不能再获取对象了,因为不可实例化,
Father father = (Father)context.getBean("father");
如果实例化会报如下异常:
Exception in thread "main" org.springframework.beans.factory.BeanIsAbstractException: Error creating bean with name 'father': Bean definition is abstract
这篇关于Spring bean inheritance bean 继承的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!