| |
消息事件 |
|
/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/
///////////////////////////////////////////////////////////////////////////////////////
//File: events.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="publisher" class="Publisher"/>
<bean id="messageEventListener" class="MessageEventListener"/>
</beans>
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.context.ApplicationEvent;
public class MessageEvent extends ApplicationEvent {
private String msg;
public MessageEvent(Object source, String msg) {
super(source);
this.msg = msg;
}
public String getMessage() {
return msg;
}
}
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
public class MessageEventListener implements ApplicationListener {
public void onApplicationEvent(ApplicationEvent event) {
if(event instanceof MessageEvent) {
MessageEvent msgEvt = (MessageEvent)event;
System.out.println("Received: " + msgEvt.getMessage());
}
}
}
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Publisher implements ApplicationContextAware {
private ApplicationContext ctx;
public static void main(String[] args) {
ApplicationContext ctx = new FileSystemXmlApplicationContext(
"build/events.xml");
Publisher pub = (Publisher) ctx.getBean("publisher");
pub.publish("Hello World!");
pub.publish("The quick brown fox jumped over the lazy dog");
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.ctx = applicationContext;
}
public void publish(String message) {
ctx.publishEvent(new MessageEvent(this, message));
}
}
|
|
MessageEvent.zip( 1,198 k) |
Related examples in the same category |
|