您的位置:首页 > 编程语言 > Java开发

Spring小白到菜鸟之Spring事件入门

2016-10-22 23:40 369 查看
下面使用一个模拟发送邮件的程序学习Spring事件

定义Spring事件类需要实现AppicationEnvent的子类。

package four;

import org.springframework.context.ApplicationEvent;

/**
*   Spring的事件类
*/
public class EventMail extends ApplicationEvent {

private String text;
private String address;

public EventMail(Object source) {
super(source);
}

public EventMail(Object object, String text, String address) {
super(object);
this.text = text;
this.address = address;
}

public void setAddress(String address) {
this.address = address;
}

public String getAddress() {
return address;
}

public void setText(String text) {
this.text = text;
}

public String getText() {
return text;
}
}


实现一个Spring事件的监听类。需要实现ApplicationListener接口。

package four;

import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

/**
*    Spring事件监听类
*/
public class EmailNotifer implements ApplicationListener<ApplicationEvent> {

@Override
public void onApplicationEvent(ApplicationEvent event) {

if (event instanceof EventMail) {
EventMail eventMail = (EventMail) event;
System.out.println("需要发送邮件的地址 " + eventMail.getAddress());
System.out.println("需要发送邮件的正文 " + eventMail.getText());
} else {
System.out.println("其它事件" + event);
}

}

}


在xml配置事件监听类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 配置监听器 -->
<bean class="four.EmailNotifer" />
</beans>


package four;

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

public class TestDemo {

public static void main(String[] args) {

ApplicationContext ctx = new ClassPathXmlApplicationContext("four.xml");
EventMail mail=new EventMail("post mail", "Jerry", "NewYork");
// 发布容器事件
ctx.publishEvent(mail);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring