SomeBean.java
java 代码
- package com.gjx.spring;
- //测试Spring的继承
- public class SomeBean {
- private String name;
- private int age;
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
somebean-config.xml
xml 代码
xml 代码
- <?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:aop="http://www.springframework.org/schema/aop"
- 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.0.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <!-- 在配制文件中设置继承,这是一个完全抽象的继承 -->
- <bean id="inheritedSomeBean" abstract="true">
- <property name="name">
- <value>冬国</value>
- </property>
- <property name="age">
- <value>22</value>
- </property>
- </bean>
- <!-- 注意这里的parent="inheritedSomeBean"与前面的对应 -->
- <bean id="some" class="com.gjx.spring.SomeBean" parent="inheritedSomeBean">
- <property name="name">
- <value>完全抽象的继承</value>
- </property>
- </bean>
- <!-- 下面是从一个Bean的实例来继承 在这里的beanInstance也是可以被实例化的-->
- <bean id="beanInstance" class="com.gjx.spring.SomeBean">
- <property name="name">
- <value>冬国</value>
- </property>
- <property name="age">
- <value>30</value>
- </property>
- </bean>
- <bean id="instanceSome" class="com.gjx.spring.SomeBean" parent="beanInstance">
- <property name="name">
- <value>实例来继承</value>
- </property>
- </bean>
- </beans>
测试类:
java 代码
- package Test.com.gjx.spring;
- import junit.framework.TestCase;
- import org.springframework.beans.factory.BeanFactory;
- import org.springframework.beans.factory.xml.XmlBeanFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.core.io.ClassPathResource;
- import org.springframework.core.io.Resource;
- import com.gjx.spring.HelloBean;
- import com.gjx.spring.SomeBean;
- public class TestHelloBean extends TestCase {
- //测试继承
- public void testSomeBean(){
- ApplicationContext context=new ClassPathXmlApplicationContext("somebean-config.xml");
- SomeBean some=(SomeBean)context.getBean("some");
- SomeBean instanceSome=(SomeBean)context.getBean("instanceSome");
- System.out.println("Abstract>>> name="+some.getName()+" age="+some.getAge());
- System.out.println("Instance>>> name="+instanceSome.getName()+" age="+instanceSome.getAge());
- }
- }
测试结果:
冬国
Abstract>>> name=完全抽象的继承 age=22
Instance>>> name=实例来继承 age=30