Spring事件Application Event原理详解
这篇文章主要介绍了Spring事件ApplicationEvent原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring的事件(ApplicationEvent)为Bean与Bean之间的消息通信提供了支持。当一个Bean处理完一个任务之后,希望另一个Bean知道并能做相应的处理,这时我们就需要让另一个Bean监听当前Bean所发送的事件。(观察者模式)
Spring的事件需要遵循以下流程:
自定义事件,集成ApplicationEvent。
定义事件监听器,实现ApplicationListener。
使用容器发布事件。
以下代码基于SpringBoot实现
自定义事件
publicclassDemoEventextendsApplicationEvent{ privatestaticfinallongserialVersionUID=1L; privateStringmsg; publicDemoEvnet(Objectsource,Stringmsg){ super(source); this.msg=msg; } publicStringgetMsg(){ returnmsg; } publicvoidsetMsg(Stringmsg){ this.msg=msg; } }
事件监听者
@Component publicclassDemoListenerimplementsApplicationListener{ publicvoidonApplicationEvent(DemoEventevent){ Stringmsg=event.getMsg(); System.out.println("接收到了消息:"+msg); } }
代码解释:
实现ApplicaionListener接口,并制定监听的时间类型。
使用onApplicationEvent方法对消息进行接收处理。
事件发布者
@Component publicclassDemoPublisher{ @Autowired ApplicationContextapplicationContext; publicvoidpublish(Stringmsg){ applicaionContext.publishEvent(newDemoEvent(this,msg)); } }
代码解释:
注入ApplicaionContext用来发布事件。
使用ApplicaionContext的publishEvent方法来发布。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。