重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了Spring 事件Application Event原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
创新互联公司专注于魏都网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供魏都营销型网站建设,魏都网站制作、魏都网页设计、魏都网站官网定制、微信平台小程序开发服务,打造魏都网络公司原创品牌,更为您提供魏都网站排名全网营销落地服务。
Spring 的事件(Application Event)为 Bean 与 Bean 之间的消息通信提供了支持。当一个 Bean 处理完一个任务之后,希望另一个 Bean 知道并能做相应的处理,这时我们就需要让另一个 Bean 监听当前 Bean 所发送的事件。(观察者模式)
Spring 的事件需要遵循以下流程:
自定义事件,集成 ApplicationEvent。
定义事件监听器,实现 ApplicationListener。
使用容器发布事件。
以下代码基于 Spring Boot 实现
自定义事件
public class DemoEvent extends ApplicationEvent { private static final long serialVersionUID = 1L; private String msg; public DemoEvnet(Object source, String msg) { super(source); this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
事件监听者
@Component public class DemoListener implements ApplicationListener{ public void onApplicationEvent(DemoEvent event) { String msg = event.getMsg(); System.out.println("接收到了消息:" + msg); } }
代码解释:
实现 ApplicaionListener 接口,并制定监听的时间类型。
使用 onApplicationEvent 方法对消息进行接收处理。
事件发布者
@Component public class DemoPublisher { @Autowired ApplicationContext applicationContext; public void publish(String msg) { applicaionContext.publishEvent(new DemoEvent(this, msg)); } }
代码解释:
注入 ApplicaionContext 用来发布事件。
使用 ApplicaionContext 的 publishEvent 方法来发布。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。