Constructor Injection with Dependent Object

In this example we will discuss about constructor injection with dependent object using a simple and self explanatory program.



Let us create two bean class Address and Employee. Employee class has reference of Address.

Address.java

package com.jwt.spring;

public class Address {
	private String city;
	private String state;
	private String country;

	public Address(String city, String state, String country) {
		super();
		this.city = city;
		this.state = state;
		this.country = country;
	}

	public String toString() {
		return "City is " + city + " State is  " + state + " and Country is "
				+ country;
	}

}

Employee.java

package com.jwt.spring;

public class Employee {
	private int id;
	private String name;
	private Address address;

	public Employee(int id, String name, Address address) {
		this.id = id;
		this.name = name;
		this.address = address;
	}

	void display() {
		System.out.println("Employee ID: " + id + " Name: " + name);
		System.out.println(address.toString());
	}

}

bean.xml

Below is the code snippet to use the Set in the spring bean configuration file.As discussed the ref attribute is used to define the reference of another object.

<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="address" class="com.jwt.spring.Address">
		<constructor-arg value="Chennai"></constructor-arg>
		<constructor-arg value="Tamilnadu"></constructor-arg>
		<constructor-arg value="India"></constructor-arg>
	</bean>
	<bean id="employee" class="com.jwt.spring.Employee">
		<constructor-arg value="101" type="int"></constructor-arg>
		<constructor-arg value="Mukesh"></constructor-arg>
		<constructor-arg>
			<ref bean="address" />
		</constructor-arg>
	</bean>
</beans>

Test.java

This class gets the bean from the applicationContext.xml file and calls the display() method.

package com.jwt.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
	public static void main(String[] args) {

		ApplicationContext context = new ClassPathXmlApplicationContext(
				"bean.xml");
		Employee e = (Employee) context.getBean("employee");
		e.display();

	}
}


Output:

Employee ID: 101 Name: Mukesh
City is Chennai State is  Tamilnadu and Country is India





comments powered by Disqus