一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情。
一、监听模式中的角色
java中最基础的监听器,jdk已经实现,它定义了一个监听模式中的各种角色:
1、事件或事件源:一个事件源发生某事件是特定事件监听器被触发的原因;
2、事件监听器:监听器监听特定事件,并在内部定义了事件发生后的响应逻辑;
拿日常生活中的例子来比对,例如,我们家里装的摄像头,在婴儿发生啼哭时,会向绑定摄像头的人的手机发送一条消息,这里的摄像头就相当于事件监听器,事件源就是婴儿啼哭,监听器的处理是向人发送消息。
二、spring中的监听
Spring 框架对事件的发布与监听提供了相对完整的支持,主要的接口有:
1、ApplicationEvent:这个类是个抽象类,主要用于用户自定义spring监听事件;
2、ApplicationListener:这个是监听器的接口,实现这个接口就将该类变为了事件监听器,但需实现这个接口中的方法。
3、ApplicationEventPublisher:这个类其实是在事件发生时,给监听器发送事件发布的动作的接口。
三、利用spring中提供的支持,自定义监听事件
1、首先,利用ApplicationEvent创建我们需要监听的事件,定义一个事件类,继承ApplicationEvent:
2、创建监听器:
3、创建事件触发器:
4、测试: 发送请求:
查看日志:
总结:
spring对于实现监听模式还是比较友好的,仅仅需要实现相应的类就可以实现功能,在实际应用中,根据业务需求可以设计更加负责的监听器以匹配实际需求。