ApplicationContext
interface programmatically, child bean definitions are represented by the ChildBeanDefinition
class. Most users do not work with them on this level, instead configuring bean definitions declaratively in something like the ClassPathXmlApplicationContext
. parent
attribute, specifying the parent bean as the value of this attribute. package com.dineshonjava.sdnext.beanDefInherit.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()+")"); } }Point.java
package com.dineshonjava.sdnext.beanDefInherit.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; } }
<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"> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Triangle" id="parentTriangle"> <property name="pointA" ref="pointA"></property> </bean> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Triangle" id="triangle1" parent="parentTriangle"> <property name="pointB" ref="pointB"></property> <property name="pointC" ref="pointC"></property> </bean> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Triangle" id="triangle2" parent="parentTriangle"> <property name="pointB" ref="pointB"></property> </bean> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Point" id="pointA"> <property name="x" value="0"></property> <property name="y" value="0"></property> </bean> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Point" id="pointB"> <property name="x" value="-20"></property> <property name="y" value="0"></property> </bean> <bean class="com.dineshonjava.sdnext.beanDefInherit.tutorial.Point" id="pointC"> <property name="x" value="20"></property> <property name="y" value="0"></property> </bean> </beans>
package com.dineshonjava.sdnext.beanDefInherit.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) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Triangle triangle = (Triangle) context.getBean("triangle1"); triangle.draw(); } }
Labels: Spring3.0