事件监听其实我们并不陌生,简单来讲,当程序达到了某个特定的条件,程序就会自动执行一段指令。在spring 中也一样,我们可以使用spring中的事件监听来实现某些特定的需求。
发布事件
既然要监听事件,首先要发布我们的事件嘛。在spring中发布事件我们可以通过继承ApplicationEvent 来发布我们的事件类。
@Data public class SendEvent extends ApplicationEvent { public SendEvent(Object source) { super(source); } }
我们得调用父类的构造方发super(source)
事件监听
在学习JavaWeb项目中有写过servlet监听器,但是那个监听器之会监听方法而不会监听到值的变化,要想监听到程序内部某个值的变化还得写事件监听类。
@Component public class SendEventListener { @EventListener public void start(String lins){ System.out.println(lins); } }
在这里我们使用@EventListener来监听我们的事件。
事件触发
说了这么多,最终要的还没说,事件要怎么触发。
我们可以通过application.publishEvent()这个方法来触发我们的事件,这里需要强调一下这个方法参数中的对象是会与监听中的对象匹配的。因此监听类中的监听事件我们呢可以创建很多个。
@GetMapping("test_events") public String testEvents(){ // 这个会促发一个事件 applicationContext.publishEvent("触发监听"); return "触发了监听事件,请查看"; }
至此,我们已经完成了一个spring的事件监听。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/188733/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)