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(); } }