Inheritance in Spring

Inheritance in Spring

Inheritance in Spring

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