Thursday 10, Apr 2025
We are moved to new domain
Click -> www.ehowtonow.com
Tuesday, 15 April 2014

Spring Constructor DI – Injecting Primitive and String-based values

In this tutorial we are going to see about Spring Dependency Injection to inject Primitive and String based values using Constructor-Injection.
Note : JavaBeans PropertyEditors are used to convert the string values from a String to the actual type of the property or argument.
Step by step procedure to create Spring Program using Eclipse given below.
Follow the Simple steps.
1. Select File –> New –> Java Project from your Eclipse IDE.
2.Create project called SpringConstructorDI.
3. Add the following jars into your build path.
commons-logging-1.1.3.jar
spring-beans-3.2.6.RELEASE.jar
spring-context-3.2.6.RELEASE.jar
spring-context-support-3.2.6.RELEASE.jar
spring-core-3.2.6.RELEASE.jar
spring-expression-3.2.6.RELEASE.jar
4. Now create package com.javatutorialscorner.spring under SpringConstructorDI Project
5. Next create PrimitiveConstructorDI class under com.javatutorialscorner.spring package
PrimitiveConstructorDI.java
package com.javatutorialscorner.spring;

public class PrimitiveConstructorDI {
private int id;
private String name;
private String job;
private double salary;

PrimitiveConstructorDI(int id, String name, String job, double salary) {
System.out.println("Inside PrimitiveConstructorDI() Constructor");
this.id = id;
this.name = name;
this.job = job;
this.salary = salary;
}

public void getDetail() {
System.out.println("int value ID :" + id);
System.out.println("String value name :" + name);
System.out.println("String value job :" + job);
System.out.println("double value salary :" + salary);
}

}

6. Now Create RunApp class which contains Bean configuration path to load configuration from Bean.xml file

RunApp.java

package com.javatutorialscorner.spring;

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

public class RunApp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

ApplicationContext context = new ClassPathXmlApplicationContext(
"Beans.xml");
PrimitiveConstructorDI constructorDI = (PrimitiveConstructorDI) context
.getBean("constructorDI");
constructorDI.getDetail();

}

}

In above program

First step I created Application context using ClassPathXmlApplicationContext  which load configuration from bean file  which located in class path of application, It take care of creating and initializing all the objects (Beans) declared in bean.xml

Next getBean() method used to get particular bean from created context. This method used bean name as parameter and returns generic object. We can caste to actual object.

Once Object Created you can access any method from that class.

7. Create Bean.xml at where your class files created (ClassPathXmlApplicationContext tries to load bean file from class path).

Bean.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.xsd">

<bean id="constructorDI" class="com.javatutorialscorner.spring.PrimitiveConstructorDI">
<constructor-arg name="id" value="5005" />
<constructor-arg name="name" value="Appu.T" />
<constructor-arg name="job" value="Software Engineer" />
<constructor-arg name="salary" value="45000.00" />
</bean>


</beans>

The value attribute of the <constructor-arg/> element specifies a property or constructor argument as a human-readable string representation. JavaBeans PropertyEditors are used to convert these string values from a String to the actual type of the property or argument

Bean.xml is default name given to bean configuration file. You can choose any name for your bean.xml but you can use file name in main application to create context and your file available in your class path must be same.

Bean.xml is used to assign unique ID to different beans and controls the creation object with different values, using above file you can pass any value to   variables without changing the class file.

Now you can run the program see the following output in console.

Inside PrimitiveConstructorDI() Constructor
int value ID :5005
String value name :Appu.T
String value job :Software Engineer
double value salary :45000.0

Shop and help us

Flipkart Offer Snapdeal offer Amazon.in offer Amazon.com offer

Related Posts:

  • Spring singleton Bean ScopeIn this tutorial we are going to see Spring singleton Bean scope with example program.Only one shared instance of a singleton bean is managed, and all requests for beans with an id or ids matching that bean definition result … Read More
  • Spring DI - Injecting Inner BeansIn this tutorial we are going to see about Spring Injecting Inner Beans .Inner BeanA <bean/> element inside the <property/> or <constructor-arg/> elements defines a so-called inner bean. An inner bean defi… Read More
  • Spring Default initialization and destroy callback methodsIn this tutorial we are going to see about Spring Default (Life Cycle) initialization and destroy method with example program.When you write initialization and destroy method callbacks that do not use the Spring-specific Init… Read More
  • Spring Bean Scope In this tutorial we are going to see the overview of Spring bean scope. When you create bean definition in Spring, you can declare the scope of bean. You can control not only the various dependencies and configuration value… Read More
  • Spring DI - Setter-based Dependency InjectionIn this tutorial we are going to see about Spring setter based dependency injection with example program,Setter-based DI is accomplished by the container calling setter methods on your beans after invoking a no-argument const… Read More
  • Blogger Comments
  • Facebook Comments
  • Disqus Comments

0 comments:

Post a Comment

Item Reviewed: Spring Constructor DI – Injecting Primitive and String-based values Rating: 5 Reviewed By: eHowToNow