Thursday, April 19, 2012

Spring ApplicationContextAware, BeanAware Example

package com.venkat.core;

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


public class DrawingApp {

    /**
     * @param args
     */
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Triangle t=(Triangle)context.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.BeansException;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class Triangle implements ApplicationContextAware,BeanNameAware {

private     Point  pointA;
private     Point  pointB;
private     Point  pointC;
private ApplicationContext context=null;   
   

    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 setApplicationContext(ApplicationContext context)
            throws BeansException {
        // TODO Auto-generated method stub
        this.context=context;
    }

    @Override
    public void setBeanName(String name) {
        // TODO Auto-generated method stub
        System.out.println("Bean name is " +name);
    }
}
-----------------------------------------------------------------
<?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" autowire="byName">
   
        </bean>
<bean id=" pointA" class="com.venkat.core.Point">
    <property name="x" value="0"/>
    <property name="y" value="0"/>
    </bean>
    <bean id="pointB" class="com.venkat.core.Point">
    <property name="x" value="-20"/>
    <property name="y" value="0"/>
    </bean>
    <bean id="pointC" class="com.venkat.core.Point">
    <property name="x" value="20"/>
    <property name="y" value="0"/>
    </bean>
</beans>

No comments:

Post a Comment