Spring事件Application Event原理详解
作者:21Java 时间:2021-10-03 19:43:45
这篇文章主要介绍了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<DemoEvent> {
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 方法来发布。
来源:https://www.cnblogs.com/peterpoker/p/10137856.html
标签:Spring,Application,Event,事件
0
投稿
猜你喜欢
C#基础学习系列之Attribute和反射详解
2022-07-19 17:55:40
C#实现的简单随机数产生器功能示例
2023-06-05 12:57:54
使用String类型小数值转换为Long类型
2023-04-14 10:34:56
基于FLink实现实时安全检测的示例代码
2022-05-06 11:03:11
Android自定义图片集合
2022-06-24 11:34:52
Android实现毛玻璃效果的对话框
2021-07-19 03:28:42
Spring 注入static属性值方式
2022-07-21 12:40:18
java中带参数的try(){}语法含义详解
2021-10-27 05:20:16
C++ 让函数返回数组的方法
2022-12-04 06:49:33
unity使用socket编程实现聊天室功能
2023-10-18 05:26:04
C#设计模式之职责链模式示例详解
2023-11-08 05:26:38
Android实现的数字格式化用法示例
2023-09-30 09:03:28
深入理解java三种工厂模式
2022-03-11 06:09:53
快速解决commons-fileupload组件无法处理自定义head信息的bug
2023-03-05 15:20:14
Android如何利用RecyclerView实现列表倒计时效果实例代码
2023-01-24 08:08:53
Java注解@Transactional事务类内调用不生效问题及解决办法
2022-04-03 18:42:06
Mybatis源码解析之事务管理
2023-01-14 10:59:34
java数据库唯一id生成工具类
2023-04-04 22:53:34
Android使用Intent传递组件大数据
2023-09-30 12:21:46
Java实现两人五子棋游戏(五) 判断是否有一方胜出
2022-03-03 18:29:44