Bean.

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.

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“.

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. 

  <property name=”name” value=”Roseindia.net”/>
</bean>
mybean” parent=”parent”>
</bean>

context.xml

<?xml version="1.0" encoding="UTF-8"?>
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

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s