Spring Bean Reference Example Using Maven and Eclipse
In this article we are going to develop Spring Bean Reference example by using eclipse and maven .
Tools and Technologies used in this article :
- Spring 3.1
- Maven
- JDK 1.6
- Eclipse juno
1. Create a java project using maven’s archetype
In the command prompt execute the following command to generate Maven compatible Java project named as 'BeanReferenceExample '.
mvn archetype:generate -DgroupId=com.javawebtutor.spring -DartifactId=BeanReferenceExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
In this article we are going to develop Spring Bean Reference example by using eclipse and maven .
Tools and Technologies used in this article :
- Spring 3.1
- Maven
- JDK 1.6
- Eclipse juno
1. Create a java project using maven’s archetype
In the command prompt execute the following command to generate Maven compatible Java project named as 'BeanReferenceExample '.
mvn archetype:generate -DgroupId=com.javawebtutor.spring -DartifactId=BeanReferenceExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Layout of the project’s directory
Maven will generate all the Java’s standard folders structure for you (besides resources folder, which you need to create it manually).
2. Convert to Eclipse project
To convert Maven project to support Eclipse IDE, in terminal, navigate to "BeanReferenceExample " project, and issue this command :
mvn eclipse:eclipse
This command generates those files required by the Eclipse IDE, in order for the project to be recognized as a valid Apache Maven project.
Now Import the project into Eclipse IDE.Project directory is given below.
3. Create a resources folder
Create a resources folder inside "src/main" folder. We will create Spring’s bean xml configuration file in that folder. Maven will treat all files under this “resources” folder as resources files, and copy it to output classes automatically.
4. Add Spring dependency
Add Spring dependency in Maven’s pom.xml file.
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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javawebtutor.spring</groupId> <artifactId>BeanReferenceExample</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>BeanReferenceExample</name> <url>http://maven.apache.org</url> <properties> <spring.version>3.0.5.RELEASE</spring.version> </properties> <dependencies> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </project>
Issue “mvn eclipse:eclipse” again, Maven will download the Spring dependency libraries automatically and put it into your Maven’s local repository. At the same time, Maven will add the downloaded libraries into Eclipse “.classpath” for dependency purpose.
In the following example, there is a Address bean to store address of a person and we will pass the reference of Address bean to Person bean using Spring IoC Setter Bean Ref Injection.
5. Write Spring bean
Create a normal Java class Employee.java at “src/main/java/com/javawebtutor/spring" package. This class is a normal java bean class.
Employee.java
package com.javawebtutor.spring; public class Employee { private String name; private int age; private Address addrs; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Address getAddrs() { return addrs; } public void setAddrs(Address addrs) { this.addrs = addrs; } }
Address.java
package com.javawebtutor.spring; public class Address { private String doorNo; private String street; private String area; public String getDoorNo() { return doorNo; } public void setDoorNo(String doorNo) { this.doorNo = doorNo; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getArea() { return area; } public void setArea(String area) { this.area = area; } }
5. Create Spring bean configuration file
Create an xml file (spring-config.xml) at “src/main/resources/Spring-Module.xml“. This is the Spring’s bean configuration file, which declares all the available Spring beans.
spring-config.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="employee" class="com.javawebtutor.spring.Employee"> <property name="name" value="Ravi" /> <property name="age" value="28" /> <property name="address" ref="address" /> </bean> <bean id="address" class="com.javawebtutor.spring.Address"> <property name="doorNo" value="36B" /> <property name="street" value="2nd Street" /> <property name="area" value="Bharti Nager, OMR Road" /> </bean> </beans>
Final Project Structure
Review it and make sure the folder structure as follows.
Let us create the Test class having the main() method. This class uses the ApplicationContext container provided by Spring.
6. Run It
Create a java class Test inside com.javawebtutor.spring package and add following code into this class.This class will load the Spring bean configuration file (spring-Module.xml) and retrieve the Spring bean via getBean() method.
Test.java
package com.javawebtutor.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String as[]) { ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); Employee employee = (Employee)context.getBean("employee"); Address address = (Address)context.getBean("address"); System.out.println("Employee Name : " +employee.getName()); System.out.println("Employee Age : " +employee.getAge()); System.out.println("Addres :" +employee.getAddress().getDoorNo()); System.out.println("--" + address.getStreet()); System.out.println("--" + address.getArea()); } }
8. Output
Employee Name : Ravi Employee Age : 28 Addres :36B --2nd Street --Bharti Nager, OMR Road
You can download the source code of the example by clicking on the Download link below.
Related Articles