Spring Bean的定义继承

简单描述一下定义继承这个概念:

就是在spring中生成两个bean:bean1和bean2

bean1定义了其内容(也就是property),

bean2没有定义,或只定义了其一部分内容.

通过在xml文件中使用parent关键字定义继承,

使得bean2中没有定义的内容沿用bean1的内容.

 

这里的例子中,你好世界有两个String内容,

你好印度有三个String内容.

在xml文件中,你好世界的所有内容都有其value(内容被定义)

你好印度只有一个或两个内容有value,

那么通过xml中的关键字parent,

使得你好印度那个没有被定义的内容,沿用你好世界中被定义的内容.

 

以下是关键代码:

package com.tutorialspoint;
public class HelloWorld {
   private String message1;
   private String message2;

public void setMessage1(String message1) {
	this.message1 = message1;
}
public void setMessage2(String message2) {
	this.message2 = message2;
}
public void getMessage1() {
	System.out.println("world message1:"+message1);
}
public void getMessage2() {
	System.out.println("world message2:"+message2);
}

   
}

  

package com.tutorialspoint;

public class HelloIndia {
   private String message1;
   private String message2;
   private String message3;

   public void setMessage1(String message){
      this.message1  = message;
   }

   public void setMessage2(String message){
      this.message2  = message;
   }

   public void setMessage3(String message){
      this.message3  = message;
   }

   public void getMessage1(){
      System.out.println("India Message1 : " + message1);
   }

   public void getMessage2(){
      System.out.println("India Message2 : " + message2);
   }

   public void getMessage3(){
      System.out.println("India Message3 : " + message3);
   }
}

  

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
    <bean id = "helloworld" class = "com.tutorialspoint.HelloWorld">
        <property name="message1" value = "你好世界"></property>
        <property name="message2" value = "你好第二个世界"></property>
    </bean>
    
    <bean id = "helloindia" class = "com.tutorialspoint.HelloIndia" parent = "helloworld">
        <property name="message1" value = "你好印度"></property>
        <property name="message3" value = "我在东北玩泥巴"></property>
    
    </bean>

   


</beans>
package com.tutorialspoint;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
   public static void main(String[] args) {
	   ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
	   
	   HelloWorld objA = (HelloWorld)context.getBean("helloworld");
	   objA.getMessage1();
	   objA.getMessage2();
	   
	   HelloIndia objB = (HelloIndia)context.getBean("helloindia");
	   objB.getMessage1();
	   objB.getMessage2();
	   objB.getMessage3();
	   
      
   }
}

  

posted on 2018-03-09 19:06  三盛乙烯  阅读(112)  评论(0编辑  收藏  举报

导航