Monday, April 23, 2012

Lifecycle Callbacks

We'll use two different ways to run methods on initialization and destruction of beans.


package com.venkat.core;


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




public class DrawingApp {


    /**
     * @param args
     */
    public static void main(String[] args) {
        AbstractApplicationContext factory=new ClassPathXmlApplicationContext("applicationContext.xml");
        factory.registerShutdownHook();
        Triangle t=(Triangle)factory.getBean("triangleBean");
        t.draw();


    }


}
-------------------------------------------------------------------------------------------
 package com.venkat.core;


public class Point {

private int x;
private int y;
public int getY() {
    return y;
}
public void setY(int y) {
    this.y = y;
}
public int getX() {
    return x;
}
public void setX(int x) {
    this.x = x;
}

   
}
--------------------------------------------------------------------------------------------
package com.venkat.core;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class Triangle implements InitializingBean,DisposableBean{

private     Point  pointA;
private     Point  pointB;
private     Point  pointC;
   
   

    public Point getPointA() {
        return pointA;
    }

    public void setPointA(Point pointA) {
        this.pointA = pointA;
    }

    public Point getPointB() {
        return pointB;
    }

    public void setPointB(Point pointB) {
        this.pointB = pointB;
    }

    public Point getPointC() {
        return pointC;
    }

    public void setPointC(Point pointC) {
        this.pointC = pointC;
    }
    public void draw()
    {
        System.out.println("Point A =("+getPointA().getX()+","+getPointA().getY() +")");
        System.out.println("Point B =("+getPointB().getX()+","+getPointB().getY() +")");
        System.out.println("Point C =("+getPointC().getX()+","+getPointC().getY() +")");
    }

    @Override
    public void destroy() throws Exception {
System.out.println("Destory Methood Called.........");       
    }

    @Override
    public void afterPropertiesSet() throws Exception {
System.out.println("Initilize method called.........");       
    }
}
-------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
   
   
        <bean id="triangleBean" class="com.venkat.core.Triangle" >
        <property name="pointA" ref="zeroPoint"/>
        <property name="pointB" ref="point1"/>   
        <property name="pointC" ref="point2"/>
        </bean>
       
<bean id="zeroPoint" class="com.venkat.core.Point">
    <property name="x" value="0"/>
    <property name="y" value="0"/>
    </bean>
    <bean id="point1" class="com.venkat.core.Point">
    <property name="x" value="10"/>
    <property name="y" value="10"/>
    </bean>
    <bean id="point2" class="com.venkat.core.Point">
    <property name="x" value="0"/>
    <property name="y" value="10"/>
    </bean>
</beans>

No comments:

Post a Comment