A simple example to demonstrate, how to provide constructor initialization to a bean using constructor-arg tag's name attribute in configuration file of Spring Framework introduced in Spring 3.0
1. Create a normal POJO class having constructor say 'Person' -
2. Create a spring.xml file placed in classpath of your application -
3. Create a Test class for the application (imp) -
Output of the program :
1. Create a normal POJO class having constructor say 'Person' -
package com.hubberspot.spring;
public class Person {
private String name;
private int age;
public Person(String name , int age) {
this.name = name;
this.age = age;
}
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;
}
}
2. Create a spring.xml file placed in classpath of your application -
|
3. Create a Test class for the application (imp) -
package com.hubberspot.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class PersonTest {
public static void main(String[] args) {
// ApplicationContext is a Spring interface which
// provides with the configuration for an application.
// It provides us with all the methods that BeanFactory
// provides. It loads the file resources in a older
// and generic manner. It helps us to publish events to the
// listener registered to it. It also provides quick support
// for internationalization. It provides us with the object
// requested, it reads the configuration file and provides
// us with the necessary object required.
// We are using concrete implementation of ApplicationContext
// here called as ClassPathXmlApplicationContext because this
// bean factory reads the xml file placed in the classpath of
// our application. We provide ClassPathXmlApplicationContext
// with a configuration file called as spring.xml placed
// at classpath of our application.
ApplicationContext context =
new ClassPathXmlApplicationContext(("spring.xml"));
// In order to get a object instantiated for a particular bean
// we call getBean() method of ClassPathXmlApplicationContext
// passing it the id for which the object is to be needed.
// Here getBean() returns an Object. We need to cast it back
// to the Person object. Without implementing new keyword we
// have injected object of Person just by reading an xml
// configuration file.
Person person = (Person)context.getBean("person");
System.out.println("The name of person is : " + person.getName());
System.out.println("The age of person is : " +person.getAge());
}
}
Output of the program :
