In this
post, i am going to explain, how to create beans using spring
ClassPathXmlApplicationContext and initialze bean properties in spring.xml
file.
Step 1
: Create new
maven project “spring_tuorial”. Project structure looks like below.
Step 2
: Update
“pom.xml” file for maven dependencies.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>spring_tutorial</groupId> <artifactId>spring_tutorial</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>spring_tutorial</name> <description>spring_tutorial</description> <properties> <org.springframework-version>4.1.5.RELEASE</org.springframework-version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework-version}</version> </dependency> </dependencies> </project>
Step
3: Create new
package “com.springtutorial.model” under “src/main/java”.
Step
4: Create
“Employee” class under the package “com.springtutorial.model”.
package com.springtutorial.model; public class Employee { private String firstName; private String lastName; private int id; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Employee [firstName=").append(firstName).append(", lastName=").append(lastName) .append(", id=").append(id).append("]"); return builder.toString(); } }
Step 5
: Create
“spring.xml” file in “src/main/resources”.
spring.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-3.0.xsd"> <bean id="employee1" class="com.springtutorial.model.Employee"> <property name="firstName" value="Hari Krishna" /> <property name="lastName" value="Gurram" /> <property name="id" value="553" /> </bean> <bean id="employee2" class="com.springtutorial.model.Employee"> <property name="firstName" value="Siva Krishna" /> <property name="lastName" value="Ponnam" /> <property name="id" value="512" /> </bean> </beans>
"spring.xml"
is used to assign unique IDs to different beans, to control the creation of
objects with different values.
<bean id="employee1"
class="com.springtutorial.model.Employee">
<property
name="firstName" value="Hari Krishna" />
<property
name="lastName" value="Gurram" />
<property
name="id" value="553" />
</bean>
Above
statement creates bean for Employee class, it can be accessed with id
"employee1",properties of bean assigned to instance variables of
class Employee.
You have
to make sure that “spring.xml” file is available in CLASSPATH and use the same
name in main application while creating application context as shown in
Main.java file.
Step 6
: Create package
“com.springtutorial.main” under “src/main/java”.
Step 7
: Create Main
class under package “com.springtutorial.main”.
package com.springtutorial.main; package com.springtutorial.main; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.springtutorial.model.Employee; public class Main { public static void main(String args[]) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Employee emp1 = (Employee) context.getBean("employee1"); Employee emp2 = (Employee) context.getBean("employee2"); System.out.println(emp1); System.out.println(emp2); } }
ApplicationContext
context = new ClassPathXmlApplicationContext("spring.xml");
Loads the
definitions from the given XML file and automatically refreshing the context.
context.getBean("employee1");
Returns
the instance of the bean configured in “spring.xml”.
Step 8
: Run
Main.java,you will get output like below.
Mar 22, 2015 7:21:18 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1509f8b: startup date [Sun Mar 22 19:21:18 IST 2015]; root of context hierarchy Mar 22, 2015 7:21:18 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from class path resource [spring.xml] Employee [firstName=Hari Krishna, lastName=Gurram, id=553] Employee [firstName=Siva Krishna, lastName=Ponnam, id=512]
No comments:
Post a Comment