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) |