package com.dineshonjava.sdnext.eventHandling.tutorial;
import javax.annotation.Resource;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Controller;
/**
* @author Dinesh Rajput
*
*/
@Controller
public class Circle implements ApplicationEventPublisherAware
{
private Point center;
private ApplicationEventPublisher publisher;
/**
* @param center the center to set
*/
@Resource(name="pointB")
public void setCenter(Point center)
{
this.center = center;
}
public void draw()
{
System.out.println("Circle is Drawn");
DrawEvent drawEvent = new DrawEvent(this);
publisher.publishEvent(drawEvent);
}
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher publisher)
{
this.publisher = publisher;
}
}
package com.dineshonjava.sdnext.eventHandling.tutorial;
/**
* @author Dinesh Rajput
*
*/
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;
}
}
MyEventListener.javapackage com.dineshonjava.sdnext.eventHandling.tutorial;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
public class MyEventListener implements ApplicationListener
{
@Override
public void onApplicationEvent(ApplicationEvent event)
{
System.out.println(event.toString());
}
}
DrawEvent.javapackage com.dineshonjava.sdnext.eventHandling.tutorial;
import org.springframework.context.ApplicationEvent;
public class DrawEvent extends ApplicationEvent
{
/**
* Dinesh Rajput
*/
private static final long serialVersionUID = 6973014356268900607L;
public DrawEvent(Object source)
{
super(source);
}
public String toString()
{
return "Draw event occurred";
}
}
spring.xml<beans xmlns:context="http://www.springframework.org/schema/context" 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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config></context:annotation-config>
<bean class="com.sdnext.dineshonjava.eventHandling.tutorial.Point" id="pointB">
<property name="x" value="10"></property>
<property name="y" value="20"></property>
</bean>
<context:component-scan base-package="com.sdnext.dineshonjava.eventHandling.tutorial"></context:component-scan>
</beans>
DrawingApp.javapackage com.dieshonjava.sdnext.eventHandling.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");
Circle circle = (Circle)context.getBean("circle");
circle.draw();
}
}
Labels: Spring3.0