
package com.dineshonjava.sdnext.constructorInjection.tutorial;
/**
* @author Dinesh Rajput
*
*/
public class Triangle
{
private String type;
private int height;
/**
* @param type the type to set
*/
/*public void setType(String type) {
this.type = type;
}*/
public Triangle(String type)
{
this.type = type;
}
public Triangle(int height)
{
this.height = height;
}
public Triangle(String type, int height)
{
this.type = type;
this.height = height;
}
public void draw()
{
System.out.println(this.type+" triangle is drawn of height "+this.height);
}
}
The Triangle bean class has two attributes viz. type and height. All the two attributes are set using the constructor injection. <beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:security="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean class="com.dineshonjava.sdnext.constructorInjection.tutorial.Triangle" id="triangle">
<constructor-arg index="0" type="java.lang.String" value="Equilateral"></constructor-arg><constructor-arg index="1" type="int" value="20"></constructor-arg></bean> </beans> package com.dineshonjava.sdnext.constructorInjection.tutorial;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author Dinesh Rajput
*
*/
public class DrawingApp
{
/**
* @param args
*/
public static void main(String[] args)
{
//Triangle triangle = new Triangle();
//BeanFactory factory =new XmlBeanFactory(new FileSystemResource("spring.xml"));
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Triangle triangle = (Triangle) context.getBean("triangle");
triangle.draw();
}
}
package com.sdnext.constructorInjection.tutorial;
/**
* @author Dinesh Rajput
*
*/
public class Triangle
{
private String type;
private int height;
/**
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* @param height the height to set
*/
public void setHeight(String height) {
this.height= height;
}
public void draw()
{
System.out.println(this.type+" triangle is drawn of height "+this.height);
}
}
The Triangle bean class has two attributes viz. type and height. All the two attributes are set using the setter injection. <beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:security="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean class="com.dineshonjava.sdnext.constructorInjection.tutorial.Triangle" id="triangle">
<property name="type" value="Equilateral">
<property name="height" value="20">
</property></property></bean>
</beans> package com.dineshonjava.sdnext.constructorInjection.tutorial;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author Dinesh Rajput
*
*/
public class DrawingApp
{
/**
* @param args
*/
public static void main(String[] args)
{
//Triangle triangle = new Triangle();
//BeanFactory factory =new XmlBeanFactory(new FileSystemResource("spring.xml"));
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Triangle triangle = (Triangle) context.getBean("triangle");
triangle.draw();
}
}
pubic class Triangle{
private int height;
private String type;
private double area;
...
...
}
pubic class Triangle{
private Point pointA;
private Point pointB;
private Point pointC;
...
...
}pubic class Point{
private int X;
private int Y;
...
...
} package com.dineshonjava.sdnext.injectingObject.tutorial;
public class Triangle
{
private Point pointA;
private Point pointB;
private Point pointC;
/**
* @param pointA the pointA to set
*/
public void setPointA(Point pointA) {
this.pointA = pointA;
}
/**
* @param pointB the pointB to set
*/
public void setPointB(Point pointB) {
this.pointB = pointB;
}
/**
* @param pointC the pointC to set
*/
public void setPointC(Point pointC) {
this.pointC = pointC;
}
public void draw()
{
System.out.println("PointA is ("+pointA.getX()+", "+pointA.getY()+")");
System.out.println("PointB is ("+pointB.getX()+", "+pointB.getY()+")");
System.out.println("PointC is ("+pointC.getX()+", "+pointC.getY()+")");
}
}
package com.dineshonjava.sdnext.injectingObject.tutorial;
public class Point
{
private int x;
private int y;
/**
* @return the x
*/
public int getX() {
return x;
}
/**
* @param x the x to set
*/
public void setX(int x) {
this.x = x;
}
/**
* @return the y
*/
public int getY() {
return y;
}
/**
* @param y the y to set
*/
public void setY(int y) {
this.y = y;
}
}
Here we define the Point class with two properties int x, int y. Actually Point class is also a bean which is as a property of the Triangle bean. Now we will configure both beans to the configuration file(spring.xml).<beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:security="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean class="com.dineshonjava.sdnext.injectingObject.tutorial.Triangle" id="triangle">
<property name="pointA" ref="pointA"></property>
<property name="pointB" ref="pointB"></property>
<property name="pointC" ref="pointC"></property>
</bean>
<bean class="com.dineshonjava.sdnext.injectingObject.tutorial.Point" id="pointA">
<property name="x" value="0"></property>
<property name="y" value="0"></property>
</bean>
<bean class="com.dineshonjava.sdnext.injectingObject.tutorial.Point" id="pointB">
<property name="x" value="-20"></property>
<property name="y" value="0"></property>
</bean>
<bean class="com.dineshonjava.sdnext.injectingObject.tutorial.Point" id="pointC">
<property name="x" value="20"></property>
<property name="y" value="0"></property>
</bean>
</beans>
package com.dineshonjava.sdnext.injectingObject.tutorial;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author Dinesh Rajput
*
*/
public class DrawingApp
{
/**
* @param args
*/
public static void main(String[] args)
{
//BeanFactory factory =new XmlBeanFactory(new FileSystemResource("spring.xml"));
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Triangle triangle = (Triangle) context.getBean("triangle");
triangle.draw();
}
}Labels: Spring3.0