ApplicationContext的事件机制
来源:互联网 发布:天猫抢优惠券软件 编辑:程序博客网 时间:2024/05/21 11:35
ApplicationContext的事件机制是观察者设计模式的实现,通过ApplicationEvent和ApplicationListener两个接口可以实现ApplicationContext的事件处理。
事件处理机制:如果在Spring容器里面有ApplicationListener Bean,那么每当ApplicationContext发布ApplicationEvent事件时,都会自动触发ApplicationListener Bean对应的监听器的onApplicationEvent事件
创建ApplicationEvent:自定义继承了ApplicationEvent类的事件类,并创建包含一个Object类型参数的构造器,用于初始化父类:super(source).如:
public class EmailEvent extends ApplicationEvent { public EmailEvent(Object source) { super(source) ; }}
创建ApplicationListener:自定义实现了ApplicationListener的监听器类,并且实现其抽象方法onApplicationEvent(ApplicationEvent event)方法:
public class EmailListener implements ApplicationListener{ public void onApplicationEvent(ApplicationEvent event) { if(event instanceof EmailEvent) { System.out.println("当前的事件源来自EmailEvent") ; } else { System.out.println("当前事件源来源未知") ; } }}
将自定义的监听器类配置到Spring容器中
<bean class = "com.chengxi.EmailListener" />
这里注意,我们只需要将监听器Bean配置到Spring容器就行了,不需要将事件配置成Bean到Spring容器中
接下来我们就可以测试一下我们自定义的事件机制了:
使用ApplicationContext的publishEvent(event)来发布事件,从而系统自动触发监听器的onApplicationEvent事件
public class Main { public static void main(String[] args) { ApplicationContext context = new ApplicationContext() ; EmailEvent event = new EmailEvent("testEvent") ; context.publishEvent(event) ; }}
我们将会在控制台看到输出:当前事件源来自EmailEvent
0 0
- ApplicationContext的事件机制
- ApplicationContext的事件机制
- ApplicationContext的事件机制
- ApplicationContext的事件机制
- 二、ApplicationContext的事件机制
- Spring---ApplicationContext的事件机制
- 5.1. ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制 .
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制
- Spring中ApplicationContext的事件机制
- ApplicationContext事件机制
- Spring ApplicationContext事件机制
- Spring-ApplicationContext事件机制
- Spring ApplicationContext事件机制
- Spring中ApplicationContext的事件机制(三 自定义事件)
- 《Pro Spring》学习笔记之ApplicationContext的事件机制
- Connection attempts: 11Adb connection Error:远程主机强迫关闭了一个现有的连接
- 内部类
- 2016.10.7 【NOIP2016提高A组五校联考4】 总结
- VS2008快捷键,希望能有所帮助
- 组件化架构漫谈
- ApplicationContext的事件机制
- git学习
- js,java,浮点数运算错误及应对方法
- 异常总结
- log4j学习笔记(二)——log4j.xml的配置
- 解决编译时的multiply defination重复定义问题
- 不是日期格式不对
- 【NOIP2016提高A组五校联考4】label
- stm32-10ADC实验(DMA方式)