spring的事件机制
来源:互联网 发布:淘宝客服提成方案 编辑:程序博客网 时间:2024/05/17 07:07
本文来自于<<轻量级j2ee企业应用实战>>的例子.因读书有感,故写下来,以免以后不记得.
1.需求:首先我们用spring的事件机制来打印出今天2017年2月14日情人节 你最想说的话 (事件机制其实也就是观察者模式)
2.分析:我们spring事件机制的例子较为简单,分为以下四个步骤
2.1编写一个普通类1继承ApplicationEvent(该类是一个抽象类,里面你必须实现其构造函数,同时也是利用带参的构造函数来进行输入目标值)
2.2再编写一个普通类2实现ApplicationListener(该类是一个接口,你必须实现其内部的onApplicationEvent(ApplicationEvent arg0)同时注意的是该处必须是带参的,该方法内部正是引用普通类1中的参数并对参数进行输出,同时也用if()elese{}来选择该事件是否是容器本身事件)
2.3编写bean.xml 其中关键在于id="emaiListListener"(我现在也不是很懂得这里的id指向哪个bean的实例)
2.4编写运行类 2.4.1将容器实例化 2.4.2创建ApplicationEvent对象 2.4.3调用publishEvent();来主动触发事件
3.接下来我贴下 我写的代码:
3.1
import org.springframework.context.ApplicationEvent;
//EmailEvent类继承了ApplicationEvent类,除此之外它就是一个普通的java类
//另外容器事件的监听器类必须实现ApplicationListener接口,我们就在另外一个类中实现这个方法
public class EmailEvent extends ApplicationEvent{
String address;
String text;
//这里必须定义一个有参的构造函数,否则会报错,同时事件机制也是利用这里的参数来引用你输入的值
public EmailEvent(Object source,String address, String text) {
super(source);
this.address=address;
this.text=text;
}
}
3.2
public class EmailNotifier implements ApplicationListener{
//该方法会在容器发生事件的时候自动触发
@Override
public void onApplicationEvent(ApplicationEvent evt) {
if(evt instanceof EmailEvent){
//发送Email通知...
EmailEvent emailEvent=(EmailEvent) evt;
System.out.println("需要发送邮件的接收地址"+emailEvent.address);
System.out.println("需要发送邮件的邮件正文"+emailEvent.text);
}
else
{
//容器内置事件不做任何处理
System.out.println("容器本身的事件"+evt);
}
}
}
3.3
<?xml version="1.0" encoding="UTF-8"?>
<beans 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-3.0.xsd">
<!-- 配置监听器 -->
<bean id="emailListListener" class="test.EmailNotifier"/>
</beans>
3.4
public class SpringTest {
public static void main(String[] args) {
//初始化ioc容器
ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
//创建一个ApplicationEvect对象
EmailEvent ele=new EmailEvent("你好","www.baidu.com","我喜欢你很久了,情人节快乐!");
//主动触发容器事件
ac.publishEvent(ele);
}
}
3.5实践运行类,输出你们情人节最想说的话
- spring的事件机制
- spring的事件机制
- spring容器的事件机制
- Spring---ApplicationContext的事件机制
- Spring的事件发布机制
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制 .
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制
- Spring事件机制的简单例子
- spring中事件机制
- Spring事件机制
- Spring ApplicationContext事件机制
- Spring事件机制
- spring 事件机制
- spring中的事件机制
- 二,Spring事件机制
- Springboot25 之搭建ehcache
- [AS2.1.3]Notification的使用
- Rails中多重子表多条件查询
- hdoj2005
- 如何解决Oracle-04031错误
- spring的事件机制
- 布局动画适用于ViewGroup
- 字符串格式化
- Java泛型
- 频分复用技术和时分复用技术
- 回文字符串 (完美的代价 蓝桥杯)
- 深度学习入门系列博客(严重推荐)--如何训练 梯度消失 梯度爆炸等解释的明确
- Unix信号机制(下)
- hdoj2006