Spring中继承配置的注入方法

时间:2024-10-25 12:36:08

(1)两个java类。一个父类一个字类

package com.lc.inherit;

/*
* 这里是父类
*/
public class Student { protected String name;
protected int age;
public String getName() {
//get/set方法
}
package com.lc.inherit;
/**
* 继承Student类
* @author xuliugen
*/
public class Gradate extends Student { //Gradate*的属性
private String degree;
//get、set方法 }

(3)Spring注入使用的配置文件

<?xml version="1.0" encoding="utf-8"?

>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 配置一个学生对象 -->
<bean id="student" class="com.lc.inherit.Student">
<property name="name" value="顺平" />
<property name="age" value="30"/>
</bean> <!-- 配置Grdate对象 -->
<bean id="grdate" parent="student" class="com.lc.inherit.Gradate">
<!-- 假设自己在这里配置属性name,age,则会替换从父对象继承的数据 没有配置的话依照父类-->
<property name="name" value="小明"/>
<property name="degree" value="学士"/>
</bean> </beans>

(4)怎样使用注入的值

package com.lc.inherit;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class App1 { public static void main(String[] args) { ApplicationContext ac=new ClassPathXmlApplicationContext("com/lc/inherit/beans.xml"); Gradate gradate=(Gradate) ac.getBean("grdate");
System.out.println(gradate.getName()+" "+gradate.getAge()+" "+gradate.getDegree());
} }