Spring Injection Example

Spring Injection Example

Spring Injection Example

Spring Injection Example

     

XML Bean-Injection, The given example below gives the brief description of the extension name spaces that can be used in the spring framework With the use of extensible name space you can  make Spring configuration file more simpler to use for many tasks which can occurs repeatedly . Extension namespaces also allows us to supply property values by using attributes .

xmlns:p="http://www.springframework.org/schema/p":-Here we have introduced  namespace:"p" that cannot be validated.

<bean id="mybean"  class="Inject">:- Here "Inject" is the name of the bean class which would be referred in the xml file with the id "mybean".

p:name="Girish" :-Here we simply use the property name in the "p" namespace, as in "p:name".

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"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="
 http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="mybean" 
  class="Inject"
  p:name="Girish" 
  p:age="24" 
  p:address="Noida" 
  p:company="Roseindia.net" 
  p:email="[email protected]"/>
</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.

String.format("Name: %s\n" +"Age: %d\n" ):-This method formats an object to produce a string. Here

%s:-is for accessing String value.

%d:-is for accessing Integer value.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class Main {

  public static void main(String[] args) {
 XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource(
  "context.xml"));
  Inject demo = (Inject) beanFactory.getBean("mybean");
  System.out.println(demo);
  }
}

class Inject {
  private String name;
  private int age;
  private String company;
  private String email;
  private String address;

  public void setAddress(String address) {
  this.address = address;
  }

  public void setCompany(String company) {
  this.company = company;
  }

  public void setEmail(String email) {
  this.email = email;
  }

  public void setAge(int age) {
  this.age = age;
  }

  public void setName(String name) {
  this.name = name;
  }

  @Override
  public String toString() {
  return String.format("Name: %s\n" +
  "Age: %d\n" +
  "Address: %s\n" +
  "Company: %s\n" +
  "E-mail: %s",
  this.name, this.age, this.address, this.company, this.email);
  }
} 
	http://www.springframework.org/schema/util 
	http://www.springframework.org/schema/util/spring-util-2.0.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
	http://www.springframework.org/schema/lang 
	http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
		destroy-method="close">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://192.168.10.75:3306/komal"/>
	<property name="username" value="root"/>
	<property name="password" value="root"/>
</bean>
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
	<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/>
</bean>
<bean id="nativeJdbcExtractor" 
	class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"/>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
	<property name="dataSource" ref="dataSource"/>
</bean>
</beans>

Output of the Spring Injection Example program

Nov 25, 2008 1:03:13 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [context.xml]
Name: Girish
Age: 24
Address: Noida
Company: Roseindia.net
E-mail: [email protected]
BUILD SUCCESSFUL (total time: 1 second)

Download source code