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.java
package 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.java
package 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.java
package 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