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