转自:
下文笔者讲述Spring Bean中定义继承的方法分享,如下所示:
Bean定义继承
bean定义中可包含很多的配置信息
如:构造函数的参数,属性值,容器的具体信息(如初始化方法,静态工厂方法名)
当然也可以定义Bean的继承关系
注意事项:
1.Spring Bean定义的继承同Java类的继承无关
只是继承的概念一致
父bean中的定义作为模板
其他子bean就可以从父 bean 中继承所需的配置。
2.当使用基于XML配置元数据时
通过使用父属性
设置父bean作为该属性的值来表明子bean定义
例
HelloWorld.java 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); } } HelloIndia.java package com.java265; 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); } } 下面是 MainApp.java 文件的内容: 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(); HelloIndia objB = (HelloIndia) context.getBean("helloIndia"); objB.getMessage1(); objB.getMessage2(); objB.getMessage3(); } } -----运行以上代码,将输出以下信息----- World Message1 : Hello World! World Message2 : Hello Second World! India Message1 : Hello India! India Message2 : Hello Second World! India Message3 : Namaste India!