SpringIOC容器初始化源码解析(3)—— 事件监听器模式
2021/11/2 22:09:42
本文主要是介绍SpringIOC容器初始化源码解析(3)—— 事件监听器模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 示例代码
- 回调函数
- Spring的事件驱动模型
监听器将监听感兴趣的事件,一旦事件发生,便做出响应,有以下几个概念:
- 事件源(Event Source)
- 事件监听器(Event Listener)
- 事件对象(Event Object)
主要负责在事件源和事件监听器之间的信息传递
示例代码
package demo.pattern.eventmode; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Event { private String type; }
package demo.pattern.eventmode; public interface EventListener { public void processEvent(Event event); }
package demo.pattern.eventmode; public class SingleClickEventListener implements EventListener { @Override public void processEvent(Event event) { if("singleclick".equals(event.getType())){ System.out.println("单击被触发了"); } } }
package demo.pattern.eventmode; public class DoubleClickEventListener implements EventListener { @Override public void processEvent(Event event) { if("doubleclick".equals(event.getType())){ System.out.println("双击被触发了"); } } }
package demo.pattern.eventmode; import java.util.ArrayList; import java.util.List; public class EventSource { private List<EventListener> listenerList = new ArrayList<>(); public void register(EventListener listener){ listenerList.add(listener); // 注册 } public void publishEvent(Event event){ for(EventListener listener: listenerList){ listener.processEvent(event); // 注册事件 } } }
package demo.pattern.eventmode; public class EventModeDemo { public static void main(String[] args) { EventSource eventSource = new EventSource(); SingleClickEventListener singleClickEventListener = new SingleClickEventListener(); DoubleClickEventListener doubleClickEventListener = new DoubleClickEventListener(); Event event = new Event(); event.setType("doubleclick"); eventSource.register(singleClickEventListener); eventSource.register(doubleClickEventListener); eventSource.publishEvent(event); } }
执行了之后只有doubleClickEventListener响应了事件。
回调函数
往组件注册自定义的方法以便组件在特定场景下调用
Spring的事件驱动模型
事件:ApplicatinEvent抽象类
这篇关于SpringIOC容器初始化源码解析(3)—— 事件监听器模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南