转自:
Bean定义包含了很多信息
如:配置信息、构造函数参数、属性值和容器的一些具体信息
如初始化方法、销毁方法等。
package com.java265;
public class HelloWorld {
private String message1;
private String message2;
public void setMessage1(String message) {
this.message1 = message;
}
public void setMessage2(String message) {
this.message2 = message;
}
public void getMessage1() {
System.out.println("World Message1 : " + message1);
}
public void getMessage2() {
System.out.println("World Message2 : " + message2);
}
}
HelloChina 类代码
package com.java265;
public class HelloChina {
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("China Message1 : " + message1);
}
public void getMessage2() {
System.out.println("China Message2 : " + message2);
}
public void getMessage3() {
System.out.println("China Message3 : " + message3);
}
}
在配置文件中,分别为 HelloWorld 中的 message1 和 message2 赋值MainApp 类代码
package com.java265;
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();
HelloChina objB = (HelloChina) context.getBean("helloChina");
objB.getMessage1();
objB.getMessage2();
objB.getMessage3();
}
}
运行结果----- World Message1 : Hello World! World Message2 : Hello World2! China Message1 : Hello China! China Message2 : Hello World2! China Message3 : Hello China3! 从以上输出结果我们可以看出,创建 helloChina 时并未对message2赋值但是由于 Bean 的继承,将值传递给了 message2 Bean.xml 其它说明定义模板 我们可以使用 abstarct="true"将其定义为抽象Bean,只可被继承不能被实例化