Inheritance in Spring
Inheritance Demo, In the example given below we are going
to tell
about the inheritance in the Spring framework. By inheritance we mean a way of forming new classes
using classes that have already been defined. Here we have created a simple bean
and used this bean as a template for creating other beans.
<bean id="parent" class="mybean" >:-Creates
a Parent bean which would be used as a template for creating other beans. Here
"mybean" is the name of the bean class which would be
referred in the xml file with the id "parent".
<bean id="child" class="mybean" parent="parent">:-Creates
a child bean which would be inheriting from the parent bean defined above.
parent="parent":-Specify that this
bean is inheriting the properties of some other bean.
<bean id="parent" class="mybean" >
<property name="name" value="Roseindia.net"/>
</bean>
<bean id="child" class="mybean" parent="parent">
<property name="address" value="Rohini"/>
</bean> |
context.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"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="parent" class="mybean" >
<property name="name" value="Roseindia.net"/>
</bean>
<bean id="child" class="mybean" parent="parent">
<property name="address" value="Rohini"/>
</bean>
<bean id="subchild" class="mybean" parent="parent"/>
</beans>
|
Main.java
This is the file through which we are retrieving the
property of the bean defined above. Some of the methods which are used here are
as follows:-
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("context.xml")):-This
method creates an instance of the XmlBeanFactory which is used to read bean
definition from an XML document
new ClassPathResource("context.xml"):-Creates a new
ClassPathResource for ClassLoader .Here the context.xml is the file which is to
be loaded.
(bf.getBean("child")):-This method
returns an instance of the bean named "child", which is shared or independent, of the given bean name.
(bf.getBean("subchild")):-This
method returns an instance of the bean named "subchild", which
is shared or independent, of the given bean name.
stringBuilder.append("Bean"):-This is
the method of the class string Builder which appends the specified string to this character sequence.
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Main {
public static void main(String[] args) throws Exception {
XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("context.xml"));
System.out.println("===============Inheritance demo=================");
System.out.println(bf.getBean("child"));
System.out.println(bf.getBean("subchild"));
}
}
class mybean {
private String name;
private String address;
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
final StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Bean");
stringBuilder.append("{name='").append(name).append('\'');
stringBuilder.append(", address=").append(address);
stringBuilder.append('}');
return stringBuilder.toString();
}
}
Output of the program
Nov 25, 2008 3:39:29 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [context.xml]
===============Inheritance demo=================
Bean{name='Roseindia.net', address=Rohini}
Bean{name='Roseindia.net', address=null}
BUILD SUCCESSFUL (total time: 1 second)
|
Download source code