spring容器事件
来源:互联网 发布:怎么用淘宝微淘 编辑:程序博客网 时间:2024/06/06 13:23
spring的ApplicationContext能够发布事件并且允许注册相应的事件监听器,它拥有一套完善的事件发布和监听机制.
事件体系:事件,事件监听器,事件源,事件监听器注册表,事件广播器.其中,事件源是事件的产生者,事件监听器注册表就是保存事件监听器的地方,事件广播器是事件与事件监听器沟通的桥梁,负责将事件通知给事件监听器.
事件类:ApplicationEvent包含ApplicationContextEvent和RequestHandledEvent两个子类,容器事件ApplicationContextEvent有ContextClosedEvent,ContextRefreshedEvent,ContextStartedEvent,ContextStoppedEvent四个子类,Web应用相关事件RequestHandledEvent有ServletRequestHandledEvent,PortletRequestHandledEvent两个子类.
事件监听器接口:ApplicationListener<E extends ApplicationEvent>包含SmartApplicationListener子接口.
事件广播器:ApplicationEventMulticaster->AbstractApplicationEventMulticaster->SimpleApplicationEventMulticaster.
1.检查是否有名为applicationEventMulticaster的bean,如果有,就会将此bean作为事件广播器,否则将SimpleApplicationEventMulticaster实例作为事件广播器
2.找出监听器并注册到事件监听器注册表
3.调用事件广播器发布相应事件
下面是个模拟实例:
1.定义事件.
2.定义事件监听.
3.使用org.springframework.context.ApplicationContext#publishEvent来发布事件.此类必须实现ApplicationContextAware接口,以便容器启动时注入ApplicationContext实例,这样此实例才有发布事件的能力.
4.测试.
事件体系:事件,事件监听器,事件源,事件监听器注册表,事件广播器.其中,事件源是事件的产生者,事件监听器注册表就是保存事件监听器的地方,事件广播器是事件与事件监听器沟通的桥梁,负责将事件通知给事件监听器.
事件类:ApplicationEvent包含ApplicationContextEvent和RequestHandledEvent两个子类,容器事件ApplicationContextEvent有ContextClosedEvent,ContextRefreshedEvent,ContextStartedEvent,ContextStoppedEvent四个子类,Web应用相关事件RequestHandledEvent有ServletRequestHandledEvent,PortletRequestHandledEvent两个子类.
事件监听器接口:ApplicationListener<E extends ApplicationEvent>包含SmartApplicationListener子接口.
事件广播器:ApplicationEventMulticaster->AbstractApplicationEventMulticaster->SimpleApplicationEventMulticaster.
spring容器事件体系的具体实现:主要参看org.springframework.context.support.AbstractApplicationContext#refresh
1.检查是否有名为applicationEventMulticaster的bean,如果有,就会将此bean作为事件广播器,否则将SimpleApplicationEventMulticaster实例作为事件广播器
2.找出监听器并注册到事件监听器注册表
3.调用事件广播器发布相应事件
下面是个模拟实例:
1.定义事件.
2.定义事件监听.
3.使用org.springframework.context.ApplicationContext#publishEvent来发布事件.此类必须实现ApplicationContextAware接口,以便容器启动时注入ApplicationContext实例,这样此实例才有发布事件的能力.
4.测试.
阅读全文
0 0
- spring容器事件
- Spring容器事件
- Spring容器事件
- spring容器事件
- spring---容器内部事件发布
- spring容器的事件机制
- spring容器启动事件和关闭事件
- spring容器事件(启动,关闭,刷新...)
- Spring的ApplicationListener及Spring容器事件使用实例
- Spring进阶之路(2)-ApplicationContext容器以及事件机制
- Spring进阶之路(2)-ApplicationContext容器以及事件机制
- ApplicationContext的事件机制&&让Bean获取Spring容器
- spring容器
- Spring容器
- spring 容器
- Spring容器
- spring容器
- spring容器
- 进程和线程的区别
- 如何将自己的开源项目传到github
- 20分钟彻底明白vue
- android项目中spinner设置默认值
- 9.12面试经历
- spring容器事件
- 基于.NET平台常用的框架整理
- C#如何运行外部程序(打开可执行程序):ShellExcute和Process
- laravel异常简单处理
- TextView属性汇总
- 根据接口获取图片的无限轮播,带小圆点+Listview
- iOS安全攻与防(总篇)
- ssh 免密码设置失败原因总结
- 搭建并多端口共享ipv4&ipv6ss服务端,实现校园网免流量