Spring事件Application Event原理详解

网友投稿 374 2022-12-14


Spring事件Application Event原理详解

这篇文章主要介绍了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,http:// msg));

}

}

代码解释:

注入 ApplicaionContext 用来发布事件。

使用 ApplicaionContext 的 publishEvent 方法来发布。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java程序设计语言的优势及特点
下一篇:java中catalina.home与catalina.base区别点整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~